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

#import <Foundation/Foundation.h>

#if !defined(GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO) || !GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO
#import "keyapis/multiapp/v1/KeyapisMultiappAppV1.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 KEYAPISMULTIAPPV1DeleteAppRequest;
@class KEYAPISMULTIAPPV1DeleteAppResponse;
@class KEYAPISMULTIAPPV1GetAppCodeRequest;
@class KEYAPISMULTIAPPV1GetAppCodeResponse;
@class KEYAPISMULTIAPPV1GetAppCountRequest;
@class KEYAPISMULTIAPPV1GetAppCountResponse;
@class KEYAPISMULTIAPPV1GetAppListRequest;
@class KEYAPISMULTIAPPV1GetAppListResponse;
@class KEYAPISMULTIAPPV1GetAppLiteCountRequest;
@class KEYAPISMULTIAPPV1GetAppLiteCountResponse;
@class KEYAPISMULTIAPPV1GetAppLiteListRequest;
@class KEYAPISMULTIAPPV1GetAppLiteListResponse;
@class KEYAPISMULTIAPPV1GetAppLiteRequest;
@class KEYAPISMULTIAPPV1GetAppLiteResponse;
@class KEYAPISMULTIAPPV1GetAppRequest;
@class KEYAPISMULTIAPPV1GetAppResponse;
@class KEYAPISMULTIAPPV1PostAppRequest;
@class KEYAPISMULTIAPPV1PostAppResponse;

#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"
#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"
#endif

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


NS_ASSUME_NONNULL_BEGIN

@protocol KEYAPISMULTIAPPV1AppService2 <NSObject>

#pragma mark PostApp(PostAppRequest) returns (PostAppResponse)

/**
 * Метод сохранения приложения.
 * Поддерживает создание и обновление.
 * Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695668.
 * Метод доступен для: admin, manager, service
 */
- (GRPCUnaryProtoCall *)postAppWithMessage:(KEYAPISMULTIAPPV1PostAppRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark GetApp(GetAppRequest) returns (GetAppResponse)

/**
 * Метод получения приложения.
 * Сценарий использования метода: 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;

#pragma mark GetAppLite(GetAppLiteRequest) returns (GetAppLiteResponse)

/**
 * Метод получения упрощённого приложения.
 * Не требует авторизации
 */
- (GRPCUnaryProtoCall *)getAppLiteWithMessage:(KEYAPISMULTIAPPV1GetAppLiteRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

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

/**
 * Метод получения списка приложений.
 * Сценарий использования метода: 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;

#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.
 * Не требует авторизации
 */
- (GRPCUnaryProtoCall *)getAppLiteListWithMessage:(KEYAPISMULTIAPPV1GetAppLiteListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#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.
 * Не требует авторизации
 */
- (GRPCUnaryProtoCall *)getAppLiteCountWithMessage:(KEYAPISMULTIAPPV1GetAppLiteCountRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark GetAppCount(GetAppCountRequest) returns (GetAppCountResponse)

/**
 * Метод получения количества приложений.
 * Сценарий использования метода: 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;

#pragma mark GetAppCode(GetAppCodeRequest) returns (GetAppCodeResponse)

/**
 * Метод получения кода для перехода в приложение.
 * Логика работы метода: 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;

#pragma mark DeleteApp(DeleteAppRequest) returns (DeleteAppResponse)

/**
 * Метод удаления приложения.
 * 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;

@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 KEYAPISMULTIAPPV1AppService <NSObject>

#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;

/**
 * Метод сохранения приложения.
 * Поддерживает создание и обновление.
 * Сценарий использования метода: 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;


#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;

/**
 * Метод получения приложения.
 * Сценарий использования метода: 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;


#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;

/**
 * Метод получения упрощённого приложения.
 * Не требует авторизации
 *
 * 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;


#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;

/**
 * Метод получения списка приложений.
 * Сценарий использования метода: 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;


#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;

/**
 * Метод получения списка упрощённых приложений.
 * Возвращает приложения не в статусе 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;


#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;

/**
 * Метод получения количества упрощённых приложений.
 * Учитывает приложения не в статусе 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;


#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;

/**
 * Метод получения количества приложений.
 * Сценарий использования метода: 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;


#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;

/**
 * Метод получения кода для перехода в приложение.
 * Логика работы метода: 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;


#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;

/**
 * Метод удаления приложения.
 * 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;


@end


#if !defined(GPB_GRPC_PROTOCOL_ONLY) || !GPB_GRPC_PROTOCOL_ONLY
/**
 * Basic service implementation, over gRPC, that only does
 * marshalling and parsing.
 */
@interface KEYAPISMULTIAPPV1AppService : GRPCProtoService<KEYAPISMULTIAPPV1AppService2, KEYAPISMULTIAPPV1AppService>
- (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

