// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/telemetry_alerting/v1/keyapis_telemetry_alerting_trigger_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 KEYAPISTELEMETRYALERTINGYV1AlertDevice;
@class KEYAPISTELEMETRYALERTINGYV1Trigger;
@class KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter;
@class KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging;
@class KEYAPISTELEMETRYALERTINGYV1TriggerFilter;
@class KEYAPISTELEMETRYALERTINGYV1TriggerPaging;
@class KEYAPISTELEMETRYALERTINGYV1Trigger_Alert;
@class KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType

/** Справочник типов значений сортировки */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_OrderByTypeUnknown = 0,

  /** По дате возникновения */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_RaisedAt = 1,

  /** По идентификатору триггера */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_TriggerId = 2,

  /** По заголовку триггера */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Title = 3,

  /** По флагу активности триггера */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Disabled = 4,

  /** По триггеру */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_Severity = 5,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType

/** Справочник типов направлений сортировки */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_DirectionTypeUnknown = 0,

  /** От большего к меньшему */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_Desc = 1,

  /** От меньшего к большему */
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_Asc = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType

/** Справочник типов значений сортировки */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_OrderByTypeUnknown = 0,

  /** По идентификатору */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Id = 1,

  /** По заголовку */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Title = 2,

  /** По флагу активности */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Disabled = 3,

  /** По Severity */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_Severity = 4,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType

/** Справочник типов направлений сортировки */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_DirectionTypeUnknown = 0,

  /** От большего к меньшему */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_Desc = 1,

  /** От меньшего к большему */
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_Asc = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType

/**
 * Справочник типов критерия триггера.
 * Задает параметры критерия, правила поиска проблемы и генерации алерта
 **/
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_CriteriaTypeUnknown = 0,

  /** Количество метрик меньше порога */
  KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_MetricsCount = 1,

  /** Доля работающих устройств в группе меньше порога */
  KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_DevicePercent = 2,

  /** Превышение порога дисперсии значений показаний */
  KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_MetricsValueDeviation = 3,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType

/** Справочник типов периодов контроля триггера */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_PeriodTypeUnknown = 0,

  /** День */
  KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_Day = 1,

  /** Месяц */
  KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_Month = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType

/** Справочник типов уровней критичности */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_SeverityTypeUnknown = 0,

  /**
   * Проблема высшего приоритета.
   * Максимальное оповещение
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Critical = 1,

  /**
   * Проблема среднего приоритета.
   * Оповещение по внутренним каналам
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Warning = 2,

  /**
   * Проблема не влияет на бизнес-пользователя.
   * Отражается во внутренних интерфейсах
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_Info = 3,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType

/** Справочник типов энергоресурсов, собираемых ТУ */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_MetricTypeUnknown = 0,

  /** Горячая вода */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_HotWater = 1,

  /** Холодная вода */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_ColdWater = 2,

  /** Теплоэнергия */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Heat = 3,

  /** Газ */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Gas = 4,

  /** Электроэнергия */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_Electricity = 5,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType

/** Справочник типов ПУ */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_DeviceTypeUnknown = 0,

  /** Коммуникационный модуль */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_Hub = 1,

  /** Счетчик импульсов - регистратор */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_PulseCounterRecorder = 2,

  /** Счетчик импульсов - регистратор LoRaWAN */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_PulseCounterRecorderLr = 3,

  /** Прибор учета расхода коммунальных услуг */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_MeteringDevice = 4,

  /** Конвертер интерфейсов */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_InterfaceConverter = 5,

  /** M-BUS концентратор */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_MBusHub = 6,

  /** Модуль связи LoRaWAN */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_CommunicationModuleLr = 7,

  /** Базовая станция LoRaWAN */
  KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_BaseLr = 8,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType

/** Типы группировок метрик при вычислении критерия */
typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_MetricGroupingTypeUnknown = 0,

  /** Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета) */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_ParentId = 1,

  /** Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика) */
  KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_DeviceId = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_IsValidValue(int32_t value);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root

/**
 * 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 KEYAPISTELEMETRYALERTINGYV1KeyapisTelemetryAlertingTriggerV1Root : GPBRootObject
@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_FieldNumber_Id_p = 1,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_FieldNumber_Filter = 2,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_FieldNumber_Paging = 3,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_Pagination_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_Pagination_OneOfCase_Paging = 3,
};

/**
 * Запрос списка устройств, вызвавших появление алерта
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest : GPBMessage

/** Идентификатор алерта */
@property(nonatomic, readwrite) int32_t id_p;

/** Параметры фильтрации алерта */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

/** Вариант разбиения на страницы */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_Pagination_OneOfCase paginationOneOfCase;

/** Параметры пагинации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *paging;

@end

/**
 * Clears whatever value was set for the oneof 'pagination'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListRequest *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_OrderByType = 1,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_DirectionType = 2,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_Limit = 3,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_FieldNumber_Offset = 4,
};

/**
 * Параметры пагинации алертов
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging : GPBMessage

/**
 * Тип значения сортировки.
 * По умолчанию: ORDER_BY_TYPE_RAISED_AT
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType orderByType;

/**
 * Тип направления сортировки.
 * По умолчанию: DESC
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType directionType;

/**
 * Сколько элементов нужно получить за раз.
 * Минимальное значение: 1.
 * Максимальное значение: 100.
 * По умолчанию: 20.
 * Если значение 0 (не передано), то выставляем значение по умолчанию
 **/
@property(nonatomic, readwrite) int32_t limit;

/**
 * Начальный сдвиг.
 * По умолчанию: 0
 **/
@property(nonatomic, readwrite) int32_t offset;

@end

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging's @c orderByType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging's @c orderByType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging's @c directionType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging's @c directionType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *message, int32_t value);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1AlertDevice

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1AlertDevice_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1AlertDevice_FieldNumber_AlertId = 1,
  KEYAPISTELEMETRYALERTINGYV1AlertDevice_FieldNumber_DeviceId = 2,
};

/**
 * Факты сработки алерта на устройствах
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1AlertDevice : GPBMessage

/** Идентификатор алерта */
@property(nonatomic, readwrite) int32_t alertId;

/** Идентификатор устройства */
@property(nonatomic, readwrite) int32_t deviceId;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос списка устройств, вызвавших появление алерта
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_Type_OneOfCase typeOneOfCase;

/** Факт сработки триггера */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1AlertDevice *data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertDeviceListResponse *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос на чтение триггера
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerRequest : GPBMessage

/** Идентификатор триггера */
@property(nonatomic, readwrite) int32_t id_p;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на чтение триггера
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_Type_OneOfCase typeOneOfCase;

/** Триггер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerResponse *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_FieldNumber_Filter = 1,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_Pagination_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос получения списка алертов
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest : GPBMessage

/** Параметры фильтрации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

/** Вариант разбиения на страницы */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_Pagination_OneOfCase paginationOneOfCase;

/** Параметры пагинации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerAlertPaging *paging;

@end

/**
 * Clears whatever value was set for the oneof 'pagination'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListRequest *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest_FieldNumber_Id_p = 1,
  KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest_FieldNumber_ClosingReason = 2,
};

/**
 * Запрос на погашение алерта
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableRequest : GPBMessage

/** Идентификатор алерта */
@property(nonatomic, readwrite) int32_t id_p;

/** Причина принудительного закрытия, заполняется в момент принудительного закрытия */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *closingReason;
/** Test to see if @c closingReason has been set. */
@property(nonatomic, readwrite) BOOL hasClosingReason;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse

/**
 * Ответ на запрос погашение алерта
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1PostTriggerAlertDisableResponse : GPBMessage

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest_FieldNumber_Filter = 1,
};

/**
 * Запрос получения списка алертов
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountRequest : GPBMessage

/** Параметры фильтрации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_FieldNumber_Filter = 1,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_Pagination_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос получения списка триггеров
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest : GPBMessage

/** Параметры фильтрации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

/** Вариант разбиения на страницы */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_Pagination_OneOfCase paginationOneOfCase;

/** Параметры пагинации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerPaging *paging;

@end

/**
 * Clears whatever value was set for the oneof 'pagination'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest_ClearPaginationOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerListRequest *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1TriggerPaging

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_OrderByType = 1,
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_DirectionType = 2,
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_Limit = 3,
  KEYAPISTELEMETRYALERTINGYV1TriggerPaging_FieldNumber_Offset = 4,
};

/**
 * Параметры пагинации триггеров
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1TriggerPaging : GPBMessage

/**
 * Тип значения сортировки.
 * По умолчанию: SEVERITY
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType orderByType;

/**
 * Тип направления сортировки.
 * По умолчанию: ASC
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType directionType;

/**
 * Сколько элементов нужно получить за раз.
 * Минимальное значение: 1.
 * Максимальное значение: 100.
 * По умолчанию: 20.
 * Если значение 0 (не передано), то выставляем значение по умолчанию
 **/
@property(nonatomic, readwrite) int32_t limit;

/**
 * Начальный сдвиг.
 * По умолчанию: 0
 **/
@property(nonatomic, readwrite) int32_t offset;

@end

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1TriggerPaging's @c orderByType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1TriggerPaging's @c orderByType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1TriggerPaging_OrderByType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1TriggerPaging's @c directionType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1TriggerPaging's @c directionType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1TriggerPaging_DirectionType_RawValue(KEYAPISTELEMETRYALERTINGYV1TriggerPaging *message, int32_t value);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1TriggerFilter

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_SeverityTypesArray = 1,
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_TagsArray = 2,
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_MetricTypesArray = 3,
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_DeviceModelsArray = 4,
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_DeviceTypesArray = 5,
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_MetricGroupingTypesArray = 6,
  KEYAPISTELEMETRYALERTINGYV1TriggerFilter_FieldNumber_IsDisabled = 7,
};

/**
 * Параметры фильтрации триггеров.
 * При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.
 * При передаче нескольких разных параметров фильтра они работают в выборке через И
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1TriggerFilter : GPBMessage

/** По уровням критичности */
// |severityTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *severityTypesArray;
/** The number of items in @c severityTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger severityTypesArray_Count;

/** По тэгам */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *tagsArray;
/** The number of items in @c tagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger tagsArray_Count;

/** По типам метрик триггеров */
// |metricTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *metricTypesArray;
/** The number of items in @c metricTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger metricTypesArray_Count;

/** По моделям устройств */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *deviceModelsArray;
/** The number of items in @c deviceModelsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceModelsArray_Count;

/** По типам устройств */
// |deviceTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *deviceTypesArray;
/** The number of items in @c deviceTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceTypesArray_Count;

/** По типам группировки метрик */
// |metricGroupingTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *metricGroupingTypesArray;
/** The number of items in @c metricGroupingTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger metricGroupingTypesArray_Count;

/** По признаку активности триггера */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isDisabled;
/** Test to see if @c isDisabled has been set. */
@property(nonatomic, readwrite) BOOL hasIsDisabled;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_TriggerSeverityTypesArray = 1,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_FiasIdsArray = 2,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_TagsArray = 3,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_MetricTypesArray = 4,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceModelsArray = 5,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceTypesArray = 6,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceParentIdsArray = 7,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_DeviceIdsArray = 8,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_IsDisabled = 9,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_AfterRaisedAt = 10,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_BeforeRaisedAt = 11,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_MetricGroupingTypesArray = 12,
  KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter_FieldNumber_TriggerIdsArray = 13,
};

/**
 * Параметры фильтрации алертов.
 * При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.
 * При передаче нескольких разных параметров фильтра они работают в выборке через И
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1TriggerAlertFilter : GPBMessage

/** По важности триггера */
// |triggerSeverityTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *triggerSeverityTypesArray;
/** The number of items in @c triggerSeverityTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger triggerSeverityTypesArray_Count;

/** По ФИАСам */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *fiasIdsArray;
/** The number of items in @c fiasIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger fiasIdsArray_Count;

/** По тэгам */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *tagsArray;
/** The number of items in @c tagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger tagsArray_Count;

/** По типам метрик триггера */
// |metricTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *metricTypesArray;
/** The number of items in @c metricTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger metricTypesArray_Count;

/** По моделям устройств */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *deviceModelsArray;
/** The number of items in @c deviceModelsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceModelsArray_Count;

/** По типам устройств */
// |deviceTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *deviceTypesArray;
/** The number of items in @c deviceTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceTypesArray_Count;

/** По идентификаторам родительских устройств */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *deviceParentIdsArray;
/** The number of items in @c deviceParentIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceParentIdsArray_Count;

/** По идентификаторам устройств */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *deviceIdsArray;
/** The number of items in @c deviceIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceIdsArray_Count;

/** По признаку активности */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isDisabled;
/** Test to see if @c isDisabled has been set. */
@property(nonatomic, readwrite) BOOL hasIsDisabled;

/** От даты возникновения включительно (>=) */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *afterRaisedAt;
/** Test to see if @c afterRaisedAt has been set. */
@property(nonatomic, readwrite) BOOL hasAfterRaisedAt;

/** До даты возникновения (<) */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *beforeRaisedAt;
/** Test to see if @c beforeRaisedAt has been set. */
@property(nonatomic, readwrite) BOOL hasBeforeRaisedAt;

/** По типам группировки метрик */
// |metricGroupingTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *metricGroupingTypesArray;
/** The number of items in @c metricGroupingTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger metricGroupingTypesArray_Count;

/** По идентификаторам триггеров */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *triggerIdsArray;
/** The number of items in @c triggerIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger triggerIdsArray_Count;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1Trigger

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Id_p = 1,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_ChangedAt = 2,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Title = 3,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_CriteriaType = 4,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Threshold = 5,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SlidingDays = 6,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_FixedDaysRange = 7,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_PeriodType = 8,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SeverityType = 9,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_IsDisabled = 10,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_Instruction = 11,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_MetricTypesArray = 12,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_DeviceModelsArray = 13,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_DeviceTypesArray = 14,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_MetricGroupingType = 15,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_SuccessThreshold = 16,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_TagsArray = 17,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_IsManuallyUnclosable = 18,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FieldNumber_IsRangeMetricExpectedFreq = 19,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_Range_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1Trigger_Range_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Range_OneOfCase_SlidingDays = 6,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Range_OneOfCase_FixedDaysRange = 7,
};

/**
 * Триггер
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1Trigger : GPBMessage

/** Идентификатор */
@property(nonatomic, readwrite) int32_t id_p;

/**
 * Дата последнего изменения.
 * Заполняется и обновляется сервером.
 * Заполняется при создании и изменении.
 * Является версией объекта
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *changedAt;
/** Test to see if @c changedAt has been set. */
@property(nonatomic, readwrite) BOOL hasChangedAt;

/** Название триггера */
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/** Тип критерия триггера */
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType criteriaType;

/** Пороговое значение триггера */
@property(nonatomic, readwrite) float threshold;

/** Временное окно выборки метрик */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1Trigger_Range_OneOfCase rangeOneOfCase;

/**
 * Скользящее окно относительно текущего момента.
 * Начало окна это 00:00:00.000 UTC дня на sliding_days раньше текущего UTC дня.
 * Конец окна - текущий момент
 **/
@property(nonatomic, readwrite) int32_t slidingDays;

/** Границы временного окна, в текущем или предыдущем месяце */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth *fixedDaysRange;

/** Тип периода контроля */
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType periodType;

/**
 * Уровень критичности проблемы, которая описана критерием.
 * Задает приоритет оповещения и реагирования
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType severityType;

/**
 * Флаг активности триггера.
 * При погашении триггера гасятся и все его алерты
 **/
@property(nonatomic, readwrite) BOOL isDisabled;

/** Краткая инструкция по решению или эскалации проблемы */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *instruction;
/** Test to see if @c instruction has been set. */
@property(nonatomic, readwrite) BOOL hasInstruction;

/**
 * Фильтрация метрик по типам метрик.
 * При нескольких элементах фильтрация срабатывает по значениям через ИЛИ
 **/
// |metricTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *metricTypesArray;
/** The number of items in @c metricTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger metricTypesArray_Count;

/**
 * Фильтрация метрик по значению моделей устройств.
 * При нескольких элементах фильтрация срабатывает по значениям через ИЛИ
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *deviceModelsArray;
/** The number of items in @c deviceModelsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceModelsArray_Count;

/**
 * Фильтрация метрик по значению типов устройств.
 * При нескольких элементах фильтрация срабатывает по значениям через ИЛИ
 **/
// |deviceTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *deviceTypesArray;
/** The number of items in @c deviceTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger deviceTypesArray_Count;

/** Тип группировки метрик при вычислении критерия */
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType metricGroupingType;

/** Количество отрицательных проверок критерия, после которого сервис отключает */
@property(nonatomic, readwrite) int32_t successThreshold;

/** Произвольные теги для фильтрации и упорядочивания */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *tagsArray;
/** The number of items in @c tagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger tagsArray_Count;

/** Флаг невозможности погашения алертов этого триггера */
@property(nonatomic, readwrite) BOOL isManuallyUnclosable;

/**
 * Признак контроля триггером временного окна выборки метрик на основе поля индикатора metric_expected_freq.
 * При значении true: поля range.sliding_days, range.fixed_days_range игнорируются при работе триггера.
 * При значении true: временное окно выборки метрик при работе триггера работает как sliding_days=indicator.metric_expected_freq.
 * При значении true: Для случаев indicator.metric_expected_freq=null индикатор игнорируется при работе триггера, алерт по нему не создается.
 * При значении true: Для случаев indicator.metric_expected_freq<=0 индикатор игнорируется при работе триггера, алерт по нему не создается
 **/
@property(nonatomic, readwrite) BOOL isRangeMetricExpectedFreq;

@end

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c criteriaType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c criteriaType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1Trigger_CriteriaType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c periodType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c periodType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1Trigger_PeriodType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c severityType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c severityType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1Trigger_SeverityType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c metricGroupingType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1Trigger's @c metricGroupingType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger *message, int32_t value);

/**
 * Clears whatever value was set for the oneof 'range'.
 **/
void KEYAPISTELEMETRYALERTINGYV1Trigger_ClearRangeOneOfCase(KEYAPISTELEMETRYALERTINGYV1Trigger *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth_FieldNumber_StartDay = 1,
  KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth_FieldNumber_EndDay = 2,
};

/**
 * Границы временного окна, в текущем или предыдущем месяце.
 * Если end_day текущего месяца не наступил, то берем прошлый месяц
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1Trigger_FixedDaysOfMonth : GPBMessage

/**
 * Начало окна времени.
 * Номер дня месяца, момент времени 00:00:00.000 UTC
 **/
@property(nonatomic, readwrite) int32_t startDay;

/**
 * Конец окна времени.
 * Номер дня месяца, момент времени 00:00:00.000 UTC
 **/
@property(nonatomic, readwrite) int32_t endDay;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1Trigger_Alert

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_Id_p = 1,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_ChangedAt = 2,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerId = 3,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_FiasId = 4,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_RaisedAt = 5,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_IsDisabled = 6,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_NoAlarmChecksCount = 7,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerMetricTypesArray = 8,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_DeviceModelsArray = 9,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerDeviceTypesArray = 10,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_DeviceParentId = 11,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_ClosedAt = 12,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_IsManuallyClosed = 13,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_ClosingReason = 14,
  KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_FieldNumber_TriggerMetricGroupingType = 15,
};

/**
 * Определение проблемы, сгенерированной по триггеру
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1Trigger_Alert : GPBMessage

/** Идентификатор */
@property(nonatomic, readwrite) int32_t id_p;

/**
 * Дата последнего изменения.
 * Заполняется и обновляется сервером.
 * Заполняется при создании и изменении.
 * Является версией объекта
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *changedAt;
/** Test to see if @c changedAt has been set. */
@property(nonatomic, readwrite) BOOL hasChangedAt;

/** Породивший триггер */
@property(nonatomic, readwrite) int32_t triggerId;

/** ФИАС */
@property(nonatomic, readwrite, copy, null_resettable) NSString *fiasId;

/** Время возникновения алерта */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *raisedAt;
/** Test to see if @c raisedAt has been set. */
@property(nonatomic, readwrite) BOOL hasRaisedAt;

/**
 * Признак погашенного алерта.
 * Проставляется сервисом при no_alarm_checks_count >= success_threshold
 **/
@property(nonatomic, readwrite) BOOL isDisabled;

/**
 * Количество проверок триггера для атрибутов данного алерта, при которых не выполнился критерий триггера.
 * Увеличивается у непогашенного алерта, если при очередной проверке нет срабатывания триггера с атрибутами данного алерта.
 * При увеличении проставляется changed_at
 **/
@property(nonatomic, readwrite) int32_t noAlarmChecksCount;

/** Типы метрик, по которым были отфильтрованы метрики */
// |triggerMetricTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_MetricType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *triggerMetricTypesArray;
/** The number of items in @c triggerMetricTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger triggerMetricTypesArray_Count;

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

/** Типы устройств, по которым были отфильтрованы метрики */
// |triggerDeviceTypesArray| contains |KEYAPISTELEMETRYALERTINGYV1Trigger_DeviceType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *triggerDeviceTypesArray;
/** The number of items in @c triggerDeviceTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger triggerDeviceTypesArray_Count;

/** Идентификаторы родительских устройств, по которому были сгруппированы метрики */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *deviceParentId;
/** Test to see if @c deviceParentId has been set. */
@property(nonatomic, readwrite) BOOL hasDeviceParentId;

/**
 * Время погашения алерта.
 * Пустой или отсутствует у непогашенного активного алерта
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *closedAt;
/** Test to see if @c closedAt has been set. */
@property(nonatomic, readwrite) BOOL hasClosedAt;

/** Признак принудительного погашения алерта */
@property(nonatomic, readwrite) BOOL isManuallyClosed;

/** Причина принудительного закрытия, заполняется в момент принудительного закрытия */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *closingReason;
/** Test to see if @c closingReason has been set. */
@property(nonatomic, readwrite) BOOL hasClosingReason;

/** Группировка метрик при вычислении критерия */
@property(nonatomic, readwrite) KEYAPISTELEMETRYALERTINGYV1Trigger_MetricGroupingType triggerMetricGroupingType;

@end

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYALERTINGYV1Trigger_Alert's @c triggerMetricGroupingType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYALERTINGYV1Trigger_Alert_TriggerMetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYALERTINGYV1Trigger_Alert's @c triggerMetricGroupingType property, allowing
 * it to be set to a value that was not defined by the enum at the time the code
 * was generated.
 **/
void SetKEYAPISTELEMETRYALERTINGYV1Trigger_Alert_TriggerMetricGroupingType_RawValue(KEYAPISTELEMETRYALERTINGYV1Trigger_Alert *message, int32_t value);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения списка записей
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_Type_OneOfCase typeOneOfCase;

/** Триггер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerListResponse *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения списка записей
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_Type_OneOfCase typeOneOfCase;

/** Алерт */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1Trigger_Alert *data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertListResponse *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest_FieldNumber_Filter = 1,
};

/**
 * Запрос получения количества записей
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerCountRequest : GPBMessage

/** Параметры фильтрации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1TriggerFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения количества записей
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_Type_OneOfCase typeOneOfCase;

/** Всего записей */
@property(nonatomic, readwrite) int32_t data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerCountResponse *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения количества записей
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_Type_OneOfCase typeOneOfCase;

/** Всего записей */
@property(nonatomic, readwrite) int32_t data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1GetTriggerAlertCountResponse *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос на создание триггера
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1PostTriggerRequest : GPBMessage

/** Триггер, который хотим создать или обновить */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос сохранения триггера
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse : GPBMessage

/** Тип результата */
@property(nonatomic, readonly) KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_Type_OneOfCase typeOneOfCase;

/** Триггер, созданный или обновленный */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYALERTINGYV1Trigger *data_p;

@end

/**
 * Clears whatever value was set for the oneof 'type'.
 **/
void KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse_ClearTypeOneOfCase(KEYAPISTELEMETRYALERTINGYV1PostTriggerResponse *message);

#pragma mark - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос на удаление триггера
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1DeleteTriggerRequest : GPBMessage

/** Идентификатор триггера */
@property(nonatomic, readwrite) int32_t id_p;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse

/**
 * Ответ на запрос удаление триггера
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1DeleteTriggerResponse : GPBMessage

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest

typedef GPB_ENUM(KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest_FieldNumber) {
  KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос на удаление алерта
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertRequest : GPBMessage

/** Идентификатор алерта */
@property(nonatomic, readwrite) int32_t id_p;

@end

#pragma mark - KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse

/**
 * Ответ на запрос удаление алерта
 **/
GPB_FINAL @interface KEYAPISTELEMETRYALERTINGYV1DeleteTriggerAlertResponse : GPBMessage

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
