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

#if !defined(GPB_GRPC_PROTOCOL_ONLY) || !GPB_GRPC_PROTOCOL_ONLY
#import "keyapis/multiapp/v1/KeyapisMultiappAppV1.pbrpc.h"
#import "keyapis/multiapp/v1/KeyapisMultiappAppV1.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"
#import "google/protobuf/Descriptor.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"

@implementation KEYAPISMULTIAPPV1AppService

#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.multiapp.v1"
                 serviceName:@"AppService"
                 callOptions:callOptions];
}

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

#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 PostApp(PostAppRequest) returns (PostAppResponse)

/**
 * Метод сохранения приложения.
 * Поддерживает создание и обновление.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695668.
 * Метод доступен для: admin, manager, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)postAppWithRequest:(KEYAPISMULTIAPPV1PostAppRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1PostAppResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToPostAppWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод сохранения приложения.
 * Поддерживает создание и обновление.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695668.
 * Метод доступен для: admin, manager, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPostAppWithRequest:(KEYAPISMULTIAPPV1PostAppRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1PostAppResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"PostApp"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1PostAppResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод сохранения приложения.
 * Поддерживает создание и обновление.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695668.
 * Метод доступен для: admin, manager, service
 */
- (GRPCUnaryProtoCall *)postAppWithMessage:(KEYAPISMULTIAPPV1PostAppRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"PostApp"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1PostAppResponse class]];
}

#pragma mark GetApp(GetAppRequest) returns (GetAppResponse)

/**
 * Метод получения приложения.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getAppWithRequest:(KEYAPISMULTIAPPV1GetAppRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetAppWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения приложения.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetAppWithRequest:(KEYAPISMULTIAPPV1GetAppRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetApp"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1GetAppResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получения приложения.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service, ltp_first
 */
- (GRPCUnaryProtoCall *)getAppWithMessage:(KEYAPISMULTIAPPV1GetAppRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetApp"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1GetAppResponse class]];
}

#pragma mark GetAppLite(GetAppLiteRequest) returns (GetAppLiteResponse)

/**
 * Метод получения упрощённого приложения.
 * Не требует авторизации
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getAppLiteWithRequest:(KEYAPISMULTIAPPV1GetAppLiteRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppLiteResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetAppLiteWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения упрощённого приложения.
 * Не требует авторизации
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetAppLiteWithRequest:(KEYAPISMULTIAPPV1GetAppLiteRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppLiteResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetAppLite"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1GetAppLiteResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получения упрощённого приложения.
 * Не требует авторизации
 */
- (GRPCUnaryProtoCall *)getAppLiteWithMessage:(KEYAPISMULTIAPPV1GetAppLiteRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetAppLite"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1GetAppLiteResponse class]];
}

#pragma mark GetAppList(GetAppListRequest) returns (stream GetAppListResponse)

/**
 * Метод получения списка приложений.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getAppListWithRequest:(KEYAPISMULTIAPPV1GetAppListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISMULTIAPPV1GetAppListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  [[self RPCToGetAppListWithRequest:request eventHandler:eventHandler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения списка приложений.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetAppListWithRequest:(KEYAPISMULTIAPPV1GetAppListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISMULTIAPPV1GetAppListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  return [self RPCToMethod:@"GetAppList"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1GetAppListResponse class]
        responsesWriteable:[GRXWriteable writeableWithEventHandler:eventHandler]];
}
/**
 * Метод получения списка приложений.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service, ltp_first
 */
- (GRPCUnaryProtoCall *)getAppListWithMessage:(KEYAPISMULTIAPPV1GetAppListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetAppList"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1GetAppListResponse class]];
}

#pragma mark GetAppLiteList(GetAppLiteListRequest) returns (stream GetAppLiteListResponse)

/**
 * Метод получения списка упрощённых приложений.
 * Возвращает приложения не в статусе DELETED.
 * Если не передан параметр app_lite_tag.platform_type возвращает пустой список.
 * Если не передан параметр app_lite_tag.app_name возвращает пустой список.
 * Если не передан параметр user_tags, либо user_tags пустой, возвращает пустой список.
 * На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
 * Не требует авторизации
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getAppLiteListWithRequest:(KEYAPISMULTIAPPV1GetAppLiteListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISMULTIAPPV1GetAppLiteListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  [[self RPCToGetAppLiteListWithRequest:request eventHandler:eventHandler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения списка упрощённых приложений.
 * Возвращает приложения не в статусе DELETED.
 * Если не передан параметр app_lite_tag.platform_type возвращает пустой список.
 * Если не передан параметр app_lite_tag.app_name возвращает пустой список.
 * Если не передан параметр user_tags, либо user_tags пустой, возвращает пустой список.
 * На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
 * Не требует авторизации
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetAppLiteListWithRequest:(KEYAPISMULTIAPPV1GetAppLiteListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISMULTIAPPV1GetAppLiteListResponse *_Nullable response, NSError *_Nullable error))eventHandler{
  return [self RPCToMethod:@"GetAppLiteList"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1GetAppLiteListResponse class]
        responsesWriteable:[GRXWriteable writeableWithEventHandler:eventHandler]];
}
/**
 * Метод получения списка упрощённых приложений.
 * Возвращает приложения не в статусе DELETED.
 * Если не передан параметр app_lite_tag.platform_type возвращает пустой список.
 * Если не передан параметр app_lite_tag.app_name возвращает пустой список.
 * Если не передан параметр user_tags, либо user_tags пустой, возвращает пустой список.
 * На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
 * Не требует авторизации
 */
- (GRPCUnaryProtoCall *)getAppLiteListWithMessage:(KEYAPISMULTIAPPV1GetAppLiteListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetAppLiteList"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1GetAppLiteListResponse class]];
}

#pragma mark GetAppLiteCount(GetAppLiteCountRequest) returns (GetAppLiteCountResponse)

/**
 * Метод получения количества упрощённых приложений.
 * Учитывает приложения не в статусе DELETED.
 * Если не передан параметр app_lite_tag.platform_type возвращает 0.
 * Если не передан параметр app_lite_tag.app_name возвращает 0.
 * Если не передан параметр user_tags, либо user_tags пустой, возвращает 0.
 * На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
 * Не требует авторизации
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getAppLiteCountWithRequest:(KEYAPISMULTIAPPV1GetAppLiteCountRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppLiteCountResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetAppLiteCountWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения количества упрощённых приложений.
 * Учитывает приложения не в статусе DELETED.
 * Если не передан параметр app_lite_tag.platform_type возвращает 0.
 * Если не передан параметр app_lite_tag.app_name возвращает 0.
 * Если не передан параметр user_tags, либо user_tags пустой, возвращает 0.
 * На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
 * Не требует авторизации
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetAppLiteCountWithRequest:(KEYAPISMULTIAPPV1GetAppLiteCountRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppLiteCountResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetAppLiteCount"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1GetAppLiteCountResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получения количества упрощённых приложений.
 * Учитывает приложения не в статусе DELETED.
 * Если не передан параметр app_lite_tag.platform_type возвращает 0.
 * Если не передан параметр app_lite_tag.app_name возвращает 0.
 * Если не передан параметр user_tags, либо user_tags пустой, возвращает 0.
 * На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
 * Не требует авторизации
 */
- (GRPCUnaryProtoCall *)getAppLiteCountWithMessage:(KEYAPISMULTIAPPV1GetAppLiteCountRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetAppLiteCount"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1GetAppLiteCountResponse class]];
}

#pragma mark GetAppCount(GetAppCountRequest) returns (GetAppCountResponse)

/**
 * Метод получения количества приложений.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
 * Метод доступен для: admin, manager, service, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getAppCountWithRequest:(KEYAPISMULTIAPPV1GetAppCountRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppCountResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToGetAppCountWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод получения количества приложений.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
 * Метод доступен для: admin, manager, service, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetAppCountWithRequest:(KEYAPISMULTIAPPV1GetAppCountRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1GetAppCountResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"GetAppCount"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1GetAppCountResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод получения количества приложений.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
 * Метод доступен для: admin, manager, service, ltp_first
 */
- (GRPCUnaryProtoCall *)getAppCountWithMessage:(KEYAPISMULTIAPPV1GetAppCountRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"GetAppCount"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1GetAppCountResponse class]];
}

#pragma mark GetAppCode(GetAppCodeRequest) returns (GetAppCodeResponse)

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

#pragma mark DeleteApp(DeleteAppRequest) returns (DeleteAppResponse)

/**
 * Метод удаления приложения.
 * Soft delete, из базы не удаляется, проставляется статус.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteAppWithRequest:(KEYAPISMULTIAPPV1DeleteAppRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1DeleteAppResponse *_Nullable response, NSError *_Nullable error))handler{
  [[self RPCToDeleteAppWithRequest:request handler:handler] start];
}
// Returns a not-yet-started RPC object.
/**
 * Метод удаления приложения.
 * Soft delete, из базы не удаляется, проставляется статус.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteAppWithRequest:(KEYAPISMULTIAPPV1DeleteAppRequest *)request handler:(void(^)(KEYAPISMULTIAPPV1DeleteAppResponse *_Nullable response, NSError *_Nullable error))handler{
  return [self RPCToMethod:@"DeleteApp"
            requestsWriter:[GRXWriter writerWithValue:request]
             responseClass:[KEYAPISMULTIAPPV1DeleteAppResponse class]
        responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]];
}
/**
 * Метод удаления приложения.
 * Soft delete, из базы не удаляется, проставляется статус.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
 * Метод доступен для: admin, manager, service
 */
- (GRPCUnaryProtoCall *)deleteAppWithMessage:(KEYAPISMULTIAPPV1DeleteAppRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions {
  return [self RPCToMethod:@"DeleteApp"
                   message:message
           responseHandler:handler
               callOptions:callOptions
             responseClass:[KEYAPISMULTIAPPV1DeleteAppResponse class]];
}

@end
#endif
