// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/signal/v1/keyapis_signal_signal_v1.proto

// This CPP symbol can be defined to use imports that match up to the framework
// imports needed when using CocoaPods.
#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
 #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
#endif

#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
 #import <Protobuf/GPBProtocolBuffers.h>
#else
 #import "GPBProtocolBuffers.h"
#endif

#if GOOGLE_PROTOBUF_OBJC_VERSION < 30007
#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
#endif
#if 30007 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
#endif

// @@protoc_insertion_point(imports)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"

CF_EXTERN_C_BEGIN

@class KEYAPISSIGNALV1Signal_Entity;
@class KEYAPISSIGNALV1Signal_Invoice;
@class KEYAPISSIGNALV1Signal_Subscription;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - KEYAPISSIGNALV1KeyapisSignalSignalV1Root

/**
 * Exposes the extension registry for this file.
 *
 * The base class provides:
 * @code
 *   + (GPBExtensionRegistry *)extensionRegistry;
 * @endcode
 * which is a @c GPBExtensionRegistry that includes all the extensions defined by
 * this file and all files that it depends on.
 **/
GPB_FINAL @interface KEYAPISSIGNALV1KeyapisSignalSignalV1Root : GPBRootObject
@end

#pragma mark - KEYAPISSIGNALV1Signal

typedef GPB_ENUM(KEYAPISSIGNALV1Signal_FieldNumber) {
  KEYAPISSIGNALV1Signal_FieldNumber_Time = 1,
  KEYAPISSIGNALV1Signal_FieldNumber_Name = 2,
  KEYAPISSIGNALV1Signal_FieldNumber_Subject = 3,
  KEYAPISSIGNALV1Signal_FieldNumber_Message = 4,
  KEYAPISSIGNALV1Signal_FieldNumber_Subscription = 5,
  KEYAPISSIGNALV1Signal_FieldNumber_Invoice = 6,
  KEYAPISSIGNALV1Signal_FieldNumber_Object = 7,
  KEYAPISSIGNALV1Signal_FieldNumber_Payload = 8,
  KEYAPISSIGNALV1Signal_FieldNumber_Meta = 9,
};

/**
 * Сигнал.
 * Если информация неизвестна то колонки заполняются следующим образом:
 * 1/ Cтрока - как пустая строка;
 * 2/ Цифра - как 0;
 * 3/ Массив - как пустой массив;
 * Некоторые данные в одних и тех же сигналах могут отсутствовать.
 * Так как в момент создания сигнала их нет в тех сервисах в которых они выполняются.
 * Все виды сигналов передаются в топиках: key.signal.*
 **/
GPB_FINAL @interface KEYAPISSIGNALV1Signal : GPBMessage

/**
 * Время возникновения сигнала.
 * В секундах от 01.01.1970 года в UTC.
 * Присутствует всегда
 **/
@property(nonatomic, readwrite) int64_t time;

/**
 * Название сигнала.
 * Присутствует всегда
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *name;

/**
 * Информация о субъекте действия с которым связан сигнал.
 * К чему сигнал относится.
 * Заполнено если такая информация присутствует в програмном модуле обрабатывающий запрос, иначе пусто.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSIGNALV1Signal_Entity *subject;
/** Test to see if @c subject has been set. */
@property(nonatomic, readwrite) BOOL hasSubject;

/**
 * Текстовая информация.
 * К примеру текст ошибки.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *message;

/**
 * Информация о подписке с которой связан сигнал.
 * Характеризует что доступно или не доступно пользователю.
 * Заполнено если такая информация присутствует в програмном модуле обрабатывающий запрос, иначе пусто.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSIGNALV1Signal_Subscription *subscription;
/** Test to see if @c subscription has been set. */
@property(nonatomic, readwrite) BOOL hasSubscription;

/**
 * Информация о выставленном счёте с которым связан сигнал.
 * Характеризует состояние оплаты.
 * Заполнено если такая информация присутствует в програмном модуле обрабатывающий запрос, иначе пусто.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSIGNALV1Signal_Invoice *invoice;
/** Test to see if @c invoice has been set. */
@property(nonatomic, readwrite) BOOL hasInvoice;

/**
 * Информация о объекте действия с которым связан сигнал.
 * К чему сигнал относится.
 * Заполнено если такая информация присутствует в програмном модуле обрабатывающий запрос, иначе пусто.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISSIGNALV1Signal_Entity *object;
/** Test to see if @c object has been set. */
@property(nonatomic, readwrite) BOOL hasObject;

/**
 * Дополнительная полезная нагрузка.
 * К примеру тэги.
 * Тут можно поместить ту информацию которая не вошла в схему, но будет полезна или стала нужна
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *payload;
/** The number of items in @c payload without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger payload_Count;

/**
 * Мета информация.
 * Некоторая информация которая присутствует в запросе.
 * К примеру это http заголовки запроса: X-Request-Id, User-Agent, X-Forwarded-For и тд
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *meta;
/** The number of items in @c meta without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger meta_Count;

@end

#pragma mark - KEYAPISSIGNALV1Signal_Entity

typedef GPB_ENUM(KEYAPISSIGNALV1Signal_Entity_FieldNumber) {
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_PlaceId = 1,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_PlaceLabel = 2,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_UserId = 3,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_UserLabel = 4,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_GroupId = 5,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_GroupTitle = 6,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_DeviceId = 7,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_DeviceLabel = 8,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_DeviceRelayIndex = 9,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_CameraId = 10,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_CameraLabel = 11,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_Key = 12,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_Code = 13,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_DtmfCode = 14,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_Phone = 15,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_Payload = 16,
  KEYAPISSIGNALV1Signal_Entity_FieldNumber_Email = 17,
};

/**
 * Сущность
 **/
GPB_FINAL @interface KEYAPISSIGNALV1Signal_Entity : GPBMessage

/**
 * Область размещения.
 * Обычно это идентификатор дома в стандарте ОРПОН.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *placeId;

/**
 * Место размещение.
 * Обычно это номер квартиры.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *placeLabel;

/**
 * Идентификатор пользователя.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *userId;

/**
 * Лейбл пользователя.
 * Обычно это тип/роль пользователя.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *userLabel;

/**
 * Идентификатор группы.
 * Обычно это идентификатор компании.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *groupId;

/**
 * Название группы.
 * Обычно это название компании.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *groupTitle;

/**
 * Идентификатор устройства.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *deviceId;

/**
 * Лейбл устройства.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *deviceLabel;

/**
 * Индекс реле устройства.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *deviceRelayIndex;

/**
 * Идентификатор камеры.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *cameraId;

/**
 * Лейбл камеры.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *cameraLabel;

/**
 * Номер ключа.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *key;

/**
 * Код.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *code;

/**
 * ДТМФ код открытия.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *dtmfCode;

/**
 * Номер телефона.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *phone;

/**
 * Дополнительная полезная нагрузка.
 * К примеру дополнительные детали сущности.
 * Тут можно поместить ту информацию которая не вошла в схему, но будет полезна или стала нужна
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *payload;
/** The number of items in @c payload without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger payload_Count;

/**
 * Почтовый адрес.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *email;

@end

#pragma mark - KEYAPISSIGNALV1Signal_Subscription

typedef GPB_ENUM(KEYAPISSIGNALV1Signal_Subscription_FieldNumber) {
  KEYAPISSIGNALV1Signal_Subscription_FieldNumber_Id_p = 1,
  KEYAPISSIGNALV1Signal_Subscription_FieldNumber_Title = 2,
  KEYAPISSIGNALV1Signal_Subscription_FieldNumber_Status = 3,
  KEYAPISSIGNALV1Signal_Subscription_FieldNumber_PrivilegesArray = 4,
  KEYAPISSIGNALV1Signal_Subscription_FieldNumber_Payload = 5,
};

/**
 * Информация о подписке
 **/
GPB_FINAL @interface KEYAPISSIGNALV1Signal_Subscription : GPBMessage

/**
 * Идентификатор подписки.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

/**
 * Название подписки.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/**
 * Статус подписки.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *status;

/**
 * Привилегии подписок.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *privilegesArray;
/** The number of items in @c privilegesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger privilegesArray_Count;

/**
 * Дополнительная полезная нагрузка.
 * К примеру дополнительные детали подписки.
 * Тут можно поместить ту информацию которая не вошла в схему, но будет полезна или стала нужна
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *payload;
/** The number of items in @c payload without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger payload_Count;

@end

#pragma mark - KEYAPISSIGNALV1Signal_Invoice

typedef GPB_ENUM(KEYAPISSIGNALV1Signal_Invoice_FieldNumber) {
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_Id_p = 1,
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_Title = 2,
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_TotalAmount = 3,
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_Status = 4,
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_Phone = 5,
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_Email = 6,
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_PositionIdsArray = 7,
  KEYAPISSIGNALV1Signal_Invoice_FieldNumber_Payload = 8,
};

/**
 * Информация о выставленном счёте
 **/
GPB_FINAL @interface KEYAPISSIGNALV1Signal_Invoice : GPBMessage

/**
 * Идентификато выставленного счёта.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

/**
 * Назначение выставленного счёта.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/**
 * Общая сумма чека.
 * В рублях.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite) float totalAmount;

/**
 * Статус выставленного счёта.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *status;

/**
 * Номер телефона на который пользователь хочет получить информацию об оплате.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *phone;

/**
 * Почта на которую пользователь хочет получить информацию об оплате.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *email;

/**
 * Идентификаторы товаров позиций на которые выставленн счёт.
 * Обычно это идентификаторы подписок.
 * Может отсутствовать
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *positionIdsArray;
/** The number of items in @c positionIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger positionIdsArray_Count;

/**
 * Дополнительная полезная нагрузка.
 * К примеру дополнительные детали выставленного счёта.
 * Тут можно поместить ту информацию которая не вошла в схему, но будет полезна или стала нужна
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary<NSString*, NSString*> *payload;
/** The number of items in @c payload without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger payload_Count;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
