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

#import <Foundation/Foundation.h>

#if !defined(GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO) || !GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO
#import "deviceapis/device/v1/DeviceapisDeviceRoomV1.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 DEVICEAPISDEVICEV1DeleteRoomListRequest;
@class DEVICEAPISDEVICEV1DeleteRoomListResponse;
@class DEVICEAPISDEVICEV1DeleteRoomRequest;
@class DEVICEAPISDEVICEV1DeleteRoomResponse;
@class DEVICEAPISDEVICEV1GetRoomCountRequest;
@class DEVICEAPISDEVICEV1GetRoomCountResponse;
@class DEVICEAPISDEVICEV1GetRoomListRequest;
@class DEVICEAPISDEVICEV1GetRoomListResponse;
@class DEVICEAPISDEVICEV1GetRoomRequest;
@class DEVICEAPISDEVICEV1GetRoomResponse;
@class DEVICEAPISDEVICEV1SaveRoomListRequest;
@class DEVICEAPISDEVICEV1SaveRoomListResponse;
@class DEVICEAPISDEVICEV1SaveRoomRequest;
@class DEVICEAPISDEVICEV1SaveRoomResponse;

#if !defined(GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO) || !GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO
  #import "deviceapis/device/v1/DeviceapisDeviceCommonV1.pbobjc.h"
  #import "google/api/Annotations.pbobjc.h"
  #import "google/api/FieldBehavior.pbobjc.h"
  #import "protoc-gen-openapiv2/options/Annotations.pbobjc.h"
#endif

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


NS_ASSUME_NONNULL_BEGIN

@protocol DEVICEAPISDEVICEV1RoomService2 <NSObject>

#pragma mark DeleteRoom(DeleteRoomRequest) returns (DeleteRoomResponse)

/**
 * Метод удаления настроек квартиры
 */
- (GRPCUnaryProtoCall *)deleteRoomWithMessage:(DEVICEAPISDEVICEV1DeleteRoomRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark DeleteRoomList(DeleteRoomListRequest) returns (DeleteRoomListResponse)

/**
 * Метод удаления списка настроек квартиры.
 * При отсутствующем или пустом фильтре удаляются все квартиры
 */
- (GRPCUnaryProtoCall *)deleteRoomListWithMessage:(DEVICEAPISDEVICEV1DeleteRoomListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark GetRoom(GetRoomRequest) returns (GetRoomResponse)

/**
 * Метод получения настроек квартиры
 */
- (GRPCUnaryProtoCall *)getRoomWithMessage:(DEVICEAPISDEVICEV1GetRoomRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark GetRoomCount(GetRoomCountRequest) returns (GetRoomCountResponse)

/**
 * Метод получения количества квартир
 */
- (GRPCUnaryProtoCall *)getRoomCountWithMessage:(DEVICEAPISDEVICEV1GetRoomCountRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark GetRoomList(GetRoomListRequest) returns (GetRoomListResponse)

/**
 * Метод получения списка настроек квартир
 */
- (GRPCUnaryProtoCall *)getRoomListWithMessage:(DEVICEAPISDEVICEV1GetRoomListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark SaveRoom(SaveRoomRequest) returns (SaveRoomResponse)

/**
 * Метод сохранения настроек квартиры.
 * Поддерживает создание и обновление
 */
- (GRPCUnaryProtoCall *)saveRoomWithMessage:(DEVICEAPISDEVICEV1SaveRoomRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark SaveRoomList(SaveRoomListRequest) returns (SaveRoomListResponse)

/**
 * Метод сохранения списка настроек квартиры
 */
- (GRPCUnaryProtoCall *)saveRoomListWithMessage:(DEVICEAPISDEVICEV1SaveRoomListRequest *)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 DEVICEAPISDEVICEV1RoomService <NSObject>

#pragma mark DeleteRoom(DeleteRoomRequest) returns (DeleteRoomResponse)

/**
 * Метод удаления настроек квартиры
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteRoomWithRequest:(DEVICEAPISDEVICEV1DeleteRoomRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1DeleteRoomResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод удаления настроек квартиры
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteRoomWithRequest:(DEVICEAPISDEVICEV1DeleteRoomRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1DeleteRoomResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark DeleteRoomList(DeleteRoomListRequest) returns (DeleteRoomListResponse)

/**
 * Метод удаления списка настроек квартиры.
 * При отсутствующем или пустом фильтре удаляются все квартиры
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteRoomListWithRequest:(DEVICEAPISDEVICEV1DeleteRoomListRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1DeleteRoomListResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод удаления списка настроек квартиры.
 * При отсутствующем или пустом фильтре удаляются все квартиры
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteRoomListWithRequest:(DEVICEAPISDEVICEV1DeleteRoomListRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1DeleteRoomListResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark GetRoom(GetRoomRequest) returns (GetRoomResponse)

/**
 * Метод получения настроек квартиры
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getRoomWithRequest:(DEVICEAPISDEVICEV1GetRoomRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1GetRoomResponse *_Nullable response, NSError *_Nullable error))handler;

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


#pragma mark GetRoomCount(GetRoomCountRequest) returns (GetRoomCountResponse)

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

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


#pragma mark GetRoomList(GetRoomListRequest) returns (GetRoomListResponse)

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

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


#pragma mark SaveRoom(SaveRoomRequest) returns (SaveRoomResponse)

/**
 * Метод сохранения настроек квартиры.
 * Поддерживает создание и обновление
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)saveRoomWithRequest:(DEVICEAPISDEVICEV1SaveRoomRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1SaveRoomResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод сохранения настроек квартиры.
 * Поддерживает создание и обновление
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToSaveRoomWithRequest:(DEVICEAPISDEVICEV1SaveRoomRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1SaveRoomResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark SaveRoomList(SaveRoomListRequest) returns (SaveRoomListResponse)

/**
 * Метод сохранения списка настроек квартиры
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)saveRoomListWithRequest:(DEVICEAPISDEVICEV1SaveRoomListRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1SaveRoomListResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод сохранения списка настроек квартиры
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToSaveRoomListWithRequest:(DEVICEAPISDEVICEV1SaveRoomListRequest *)request handler:(void(^)(DEVICEAPISDEVICEV1SaveRoomListResponse *_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 DEVICEAPISDEVICEV1RoomService : GRPCProtoService<DEVICEAPISDEVICEV1RoomService2, DEVICEAPISDEVICEV1RoomService>
- (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

