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

#if !defined(GPB_GRPC_PROTOCOL_ONLY) || !GPB_GRPC_PROTOCOL_ONLY
#import "keyapis/device/v1/KeyapisDeviceDeviceV1.pbrpc.h"
#import "keyapis/device/v1/KeyapisDeviceDeviceV1.pbobjc.h"
#import <ProtoRPC/ProtoRPCLegacy.h>
#import <RxLibrary/GRXWriter+Immediate.h>

#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"
#if defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) && GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
#import <Protobuf/GPBWrappers.pbobjc.h>
#else
#import "GPBWrappers.pbobjc.h"
#endif
#import "google/api/Visibility.pbobjc.h"
#import "keyapis/device/v1/KeyapisDeviceModelV1.pbobjc.h"

@implementation KEYAPISDEVICEV1DeviceService

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-designated-initializers"

// Designated initializer
- (instancetype)initWithHost:(NSString *)host callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [super initWithHost:host
                 packageName:@"keyapis.device.v1"
                 serviceName:@"DeviceService"
                 callOptions:callOptions];
}

- (instancetype)initWithHost:(NSString *)host {
  return [super initWithHost:host
                 packageName:@"keyapis.device.v1"
                 serviceName:@"DeviceService"];
}

#pragma clang diagnostic pop

// Override superclass initializer to disallow different package and service names.
- (instancetype)initWithHost:(NSString *)host
                 packageName:(NSString *)packageName
                 serviceName:(NSString *)serviceName {
  return [self initWithHost:host];
}

- (instancetype)initWithHost:(NSString *)host
                 packageName:(NSString *)packageName
                 serviceName:(NSString *)serviceName
                 callOptions:(GRPCCallOptions *)callOptions {
  return [self initWithHost:host callOptions:callOptions];
}

#pragma mark - Class Methods

+ (instancetype)serviceWithHost:(NSString *)host {
  return [[self alloc] initWithHost:host];
}

+ (instancetype)serviceWithHost:(NSString *)host callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [[self alloc] initWithHost:host callOptions:callOptions];
}

#pragma mark - Method Implementations

#pragma mark GetDevice(GetDeviceRequest) returns (GetDeviceResponse)

/**
 * Метод получаения устройства.
 * Метод доступен для: 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)getDeviceWithRequest:(KEYAPISDEVICEV1GetDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetDeviceWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получаения устройства.
 * Метод доступен для: 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 *)RPCToGetDeviceWithRequest:(KEYAPISDEVICEV1GetDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetDevice"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1GetDeviceResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получаения устройства.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)getDeviceWithMessage:(KEYAPISDEVICEV1GetDeviceRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetDevice"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1GetDeviceResponse class]];
}

#pragma mark GetDeviceList(GetDeviceListRequest) returns (stream GetDeviceListResponse)

/**
 * Метод получения списка устройств.
 * Метод доступен для: 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)getDeviceListWithRequest:(KEYAPISDEVICEV1GetDeviceListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISDEVICEV1GetDeviceListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  [[self RPCToGetDeviceListWithRequest:request eventHandler:eventHandler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения списка устройств.
 * Метод доступен для: 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 *)RPCToGetDeviceListWithRequest:(KEYAPISDEVICEV1GetDeviceListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISDEVICEV1GetDeviceListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  return [self RPCToMethod:@"GetDeviceList"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1GetDeviceListResponse class]
        responsesWriteable:[GRXWriteable writeableWithEventHandler:eventHandler]];
}
/**
 * Метод получения списка устройств.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)getDeviceListWithMessage:(KEYAPISDEVICEV1GetDeviceListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetDeviceList"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1GetDeviceListResponse class]];
}

#pragma mark GetDeviceCount(GetDeviceCountRequest) returns (GetDeviceCountResponse)

/**
 * Метод получения количества устройств.
 * Метод доступен для: 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)getDeviceCountWithRequest:(KEYAPISDEVICEV1GetDeviceCountRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceCountResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetDeviceCountWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения количества устройств.
 * Метод доступен для: 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 *)RPCToGetDeviceCountWithRequest:(KEYAPISDEVICEV1GetDeviceCountRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceCountResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetDeviceCount"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1GetDeviceCountResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получения количества устройств.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)getDeviceCountWithMessage:(KEYAPISDEVICEV1GetDeviceCountRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetDeviceCount"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1GetDeviceCountResponse class]];
}

#pragma mark PostDevice(PostDeviceRequest) returns (PostDeviceResponse)

/**
 * Метод создания устройства.
 * Метод доступен для: admin, bti, service, owner, employee.
 * Для owner, employee доступно создание и редактирование только в КВГ, привязанных к компании пользователя
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)postDeviceWithRequest:(KEYAPISDEVICEV1PostDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToPostDeviceWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод создания устройства.
 * Метод доступен для: admin, bti, service, owner, employee.
 * Для owner, employee доступно создание и редактирование только в КВГ, привязанных к компании пользователя
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPostDeviceWithRequest:(KEYAPISDEVICEV1PostDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"PostDevice"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1PostDeviceResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод создания устройства.
 * Метод доступен для: admin, bti, service, owner, employee.
 * Для owner, employee доступно создание и редактирование только в КВГ, привязанных к компании пользователя
 */
- (GRPCUnaryProtoCall *)postDeviceWithMessage:(KEYAPISDEVICEV1PostDeviceRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"PostDevice"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1PostDeviceResponse class]];
}

#pragma mark PutDevice(PutDeviceRequest) returns (PutDeviceResponse)

/**
 * Метод изменения устройства.
 * Метод доступен для: admin, bti, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)putDeviceWithRequest:(KEYAPISDEVICEV1PutDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1PutDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToPutDeviceWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод изменения устройства.
 * Метод доступен для: admin, bti, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPutDeviceWithRequest:(KEYAPISDEVICEV1PutDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1PutDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"PutDevice"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1PutDeviceResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод изменения устройства.
 * Метод доступен для: admin, bti, service
 */
- (GRPCUnaryProtoCall *)putDeviceWithMessage:(KEYAPISDEVICEV1PutDeviceRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"PutDevice"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1PutDeviceResponse class]];
}

#pragma mark PostDeviceInstallPreset(PostDeviceInstallPresetRequest) returns (PostDeviceInstallPresetResponse)

/**
 * Метод установки пресета на устройство.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)postDeviceInstallPresetWithRequest:(KEYAPISDEVICEV1PostDeviceInstallPresetRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceInstallPresetResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToPostDeviceInstallPresetWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод установки пресета на устройство.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPostDeviceInstallPresetWithRequest:(KEYAPISDEVICEV1PostDeviceInstallPresetRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceInstallPresetResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"PostDeviceInstallPreset"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1PostDeviceInstallPresetResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод установки пресета на устройство.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)postDeviceInstallPresetWithMessage:(KEYAPISDEVICEV1PostDeviceInstallPresetRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"PostDeviceInstallPreset"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1PostDeviceInstallPresetResponse class]];
}

#pragma mark PostDeviceReplace(PostDeviceReplaceRequest) returns (PostDeviceReplaceResponse)

/**
 * Метод замены устройста.
 * Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=655256574.
 * Метод доступен для: admin, bti, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)postDeviceReplaceWithRequest:(KEYAPISDEVICEV1PostDeviceReplaceRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceReplaceResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToPostDeviceReplaceWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод замены устройста.
 * Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=655256574.
 * Метод доступен для: admin, bti, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPostDeviceReplaceWithRequest:(KEYAPISDEVICEV1PostDeviceReplaceRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceReplaceResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"PostDeviceReplace"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1PostDeviceReplaceResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод замены устройста.
 * Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=655256574.
 * Метод доступен для: admin, bti, service
 */
- (GRPCUnaryProtoCall *)postDeviceReplaceWithMessage:(KEYAPISDEVICEV1PostDeviceReplaceRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"PostDeviceReplace"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1PostDeviceReplaceResponse class]];
}

#pragma mark PostDeviceReconfigure(PostDeviceReconfigureRequest) returns (PostDeviceReconfigureResponse)

/**
 * Метод переконфигурирования устройста.
 * Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=630337555.
 * Метод доступен для: admin, bti, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)postDeviceReconfigureWithRequest:(KEYAPISDEVICEV1PostDeviceReconfigureRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceReconfigureResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToPostDeviceReconfigureWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод переконфигурирования устройста.
 * Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=630337555.
 * Метод доступен для: admin, bti, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPostDeviceReconfigureWithRequest:(KEYAPISDEVICEV1PostDeviceReconfigureRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceReconfigureResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"PostDeviceReconfigure"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1PostDeviceReconfigureResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод переконфигурирования устройста.
 * Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=630337555.
 * Метод доступен для: admin, bti, service
 */
- (GRPCUnaryProtoCall *)postDeviceReconfigureWithMessage:(KEYAPISDEVICEV1PostDeviceReconfigureRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"PostDeviceReconfigure"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1PostDeviceReconfigureResponse class]];
}

#pragma mark GetDeviceConfigurationStatuses(GetDeviceConfigurationStatusesRequest) returns (GetDeviceConfigurationStatusesResponse)

/**
 * Метод получения статусов конфигурации устройства.
 * Метод доступен для: admin, service, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getDeviceConfigurationStatusesWithRequest:(KEYAPISDEVICEV1GetDeviceConfigurationStatusesRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceConfigurationStatusesResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetDeviceConfigurationStatusesWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения статусов конфигурации устройства.
 * Метод доступен для: admin, service, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetDeviceConfigurationStatusesWithRequest:(KEYAPISDEVICEV1GetDeviceConfigurationStatusesRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceConfigurationStatusesResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetDeviceConfigurationStatuses"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1GetDeviceConfigurationStatusesResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получения статусов конфигурации устройства.
 * Метод доступен для: admin, service, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)getDeviceConfigurationStatusesWithMessage:(KEYAPISDEVICEV1GetDeviceConfigurationStatusesRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetDeviceConfigurationStatuses"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1GetDeviceConfigurationStatusesResponse class]];
}

#pragma mark PostDeviceConfigurationStatus(PostDeviceConfigurationStatusRequest) returns (PostDeviceConfigurationStatusResponse)

/**
 * Метод изменения статуса конфигурации устройства.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)postDeviceConfigurationStatusWithRequest:(KEYAPISDEVICEV1PostDeviceConfigurationStatusRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceConfigurationStatusResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToPostDeviceConfigurationStatusWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод изменения статуса конфигурации устройства.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPostDeviceConfigurationStatusWithRequest:(KEYAPISDEVICEV1PostDeviceConfigurationStatusRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostDeviceConfigurationStatusResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"PostDeviceConfigurationStatus"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1PostDeviceConfigurationStatusResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод изменения статуса конфигурации устройства.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)postDeviceConfigurationStatusWithMessage:(KEYAPISDEVICEV1PostDeviceConfigurationStatusRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"PostDeviceConfigurationStatus"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1PostDeviceConfigurationStatusResponse class]];
}

#pragma mark GetDeviceConfigurationStatusGroupedList(GetDeviceConfigurationStatusGroupedListRequest) returns (stream GetDeviceConfigurationStatusGroupedListResponse)

/**
 * Метод получения списка конфигураций сгруппированных по устройствам.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getDeviceConfigurationStatusGroupedListWithRequest:(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  [[self RPCToGetDeviceConfigurationStatusGroupedListWithRequest:request eventHandler:eventHandler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения списка конфигураций сгруппированных по устройствам.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetDeviceConfigurationStatusGroupedListWithRequest:(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  return [self RPCToMethod:@"GetDeviceConfigurationStatusGroupedList"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedListResponse class]
        responsesWriteable:[GRXWriteable writeableWithEventHandler:eventHandler]];
}
/**
 * Метод получения списка конфигураций сгруппированных по устройствам.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)getDeviceConfigurationStatusGroupedListWithMessage:(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetDeviceConfigurationStatusGroupedList"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedListResponse class]];
}

#pragma mark GetDeviceConfigurationStatusGroupedCount(GetDeviceConfigurationStatusGroupedCountRequest) returns (GetDeviceConfigurationStatusGroupedCountResponse)

/**
 * Метод получения количества конфигураций сгруппированных по устройствам.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getDeviceConfigurationStatusGroupedCountWithRequest:(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedCountRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedCountResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetDeviceConfigurationStatusGroupedCountWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения количества конфигураций сгруппированных по устройствам.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetDeviceConfigurationStatusGroupedCountWithRequest:(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedCountRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedCountResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetDeviceConfigurationStatusGroupedCount"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedCountResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получения количества конфигураций сгруппированных по устройствам.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)getDeviceConfigurationStatusGroupedCountWithMessage:(KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedCountRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetDeviceConfigurationStatusGroupedCount"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1GetDeviceConfigurationStatusGroupedCountResponse class]];
}

#pragma mark DeleteDevice(DeleteDeviceRequest) returns (DeleteDeviceResponse)

/**
 * Метод удаления устройства.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteDeviceWithRequest:(KEYAPISDEVICEV1DeleteDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToDeleteDeviceWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод удаления устройства.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteDeviceWithRequest:(KEYAPISDEVICEV1DeleteDeviceRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteDeviceResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"DeleteDevice"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1DeleteDeviceResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод удаления устройства.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)deleteDeviceWithMessage:(KEYAPISDEVICEV1DeleteDeviceRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"DeleteDevice"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1DeleteDeviceResponse class]];
}

#pragma mark GetDeviceLite(GetDeviceLiteRequest) returns (GetDeviceLiteResponse)

/**
 * Метод получаения упрощенного устройства.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first.
 * Метод доступен для: ApiKey
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getDeviceLiteWithRequest:(KEYAPISDEVICEV1GetDeviceLiteRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceLiteResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetDeviceLiteWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получаения упрощенного устройства.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first.
 * Метод доступен для: ApiKey
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetDeviceLiteWithRequest:(KEYAPISDEVICEV1GetDeviceLiteRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetDeviceLiteResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetDeviceLite"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISDEVICEV1GetDeviceLiteResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получаения упрощенного устройства.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first.
 * Метод доступен для: ApiKey
 */
- (GRPCUnaryProtoCall *)getDeviceLiteWithMessage:(KEYAPISDEVICEV1GetDeviceLiteRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetDeviceLite"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISDEVICEV1GetDeviceLiteResponse class]];
}

@end
#endif
