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

#if !defined(GPB_GRPC_PROTOCOL_ONLY) || !GPB_GRPC_PROTOCOL_ONLY
#import "keyapis/bell/v1/KeyapisBellNotificationV1.pbrpc.h"
#import "keyapis/bell/v1/KeyapisBellNotificationV1.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 "keyapis/bell/v1/KeyapisBellCommonV1.pbobjc.h"

@implementation KEYAPISBELLV1NotificationService

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

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

#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 PostNotification(PostNotificationRequest) returns (PostNotificationResponse)

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

#pragma mark GetNotification(GetNotificationRequest) returns (GetNotificationResponse)

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

#pragma mark GetNotificationList(GetNotificationListRequest) returns (stream GetNotificationListResponse)

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

#pragma mark GetNotificationCount(GetNotificationCountRequest) returns (GetNotificationCountResponse)

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

#pragma mark PostNotificationView(PostNotificationViewRequest) returns (PostNotificationViewResponse)

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

#pragma mark PostNotificationViewOrponRoomNumber(PostNotificationViewOrponRoomNumberRequest) returns (PostNotificationViewOrponRoomNumberResponse)

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

@end
#endif
