// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/telemetry_control/v1/keyapis_telemetry_control_dictionary_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 KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel;
@class KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter;
@class KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging;
@class KEYAPISTELEMETRYCONTROLV1DictionaryMrf;
@class KEYAPISTELEMETRYCONTROLV1DictionaryRf;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType

/** Справочник типов значений сортировки */
typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_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.
   **/
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_OrderByTypeUnknown = 0,

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

  /** По заголовку элемента */
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_Title = 2,
};

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_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 KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType

/**
 * Справочник типов направлений сортировки.
 * По умолчанию: ASC
 **/
typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_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.
   **/
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_DirectionTypeUnknown = 0,

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

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

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_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 KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType

/** Справочник Макрорегионы (МРФ) */
typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType) {
  /**
   * 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.
   **/
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_MrfTypeUnknown = 0,

  /** Центр */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Tsentr = 1,

  /** Юг */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Yug = 2,

  /** Урал */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Ural = 3,

  /** Сибирь */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Sibir = 4,

  /** Северо-Запад */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_SeveroZapad = 5,

  /** Дальний Восток */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_DalniyVostok = 6,

  /** Волга */
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_Volga = 7,
};

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_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 KEYAPISTELEMETRYCONTROLV1DictionaryMrf_MrfType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType

/** Справочник Разрешения Телеметрии */
typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType) {
  /**
   * 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.
   **/
  KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_PermissionTypeUnknown = 0,
};

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_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 KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType

/** Справочник Регионы (РФ) */
typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType) {
  /**
   * 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.
   **/
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_RfTypeUnknown = 0,

  /** Республика Башкортостан */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ufa = 1,

  /** Кировская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kirov = 2,

  /** Ивановский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ivanovo = 3,

  /** Калужский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kaluga = 4,

  /** Костромской филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kostroma = 5,

  /** Курский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kursk = 6,

  /** Липецкий филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Lipetsk = 7,

  /** Московская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mosoblast = 8,

  /** Орловский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Orel = 9,

  /** Рязанский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ryazan = 10,

  /** Тамбовский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tambov = 11,

  /** Тверской филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tver = 12,

  /** Ярославский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Yaroslavl = 13,

  /** Смоленский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Smolensk = 14,

  /** Тульский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tula = 15,

  /** Москва */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Moscow = 16,

  /** ЕАО */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Eao = 17,

  /** Филиал в Тюменской и Курганской областях */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kurgan = 18,

  /** Филиал в Тюменской и Курганской областях */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tumen = 19,

  /** Ханты-Мансийский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Hanty = 20,

  /** Амурская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Amur = 21,

  /** Камчатский край */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kamchatka = 22,

  /** Магаданская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Magadan = 23,

  /** Приморский край */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Primorye = 24,

  /** Сахалинская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Sakhalin = 25,

  /** Хабаровский край */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Khabarovsk = 26,

  /** Забайкальский край */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chita = 27,

  /** ЧАО */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chukotka = 28,

  /** Архангельск */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Archangelsk = 29,

  /** Вологда */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vologda = 30,

  /** Калининград */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kaliningrad = 31,

  /** Карелия */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Karelia = 32,

  /** Коми */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Komi = 33,

  /** Лен область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Lenoblast = 34,

  /** Мурманск */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Murmansk = 35,

  /** Новгород */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Novgorod = 36,

  /** Псков */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Pskov = 37,

  /** СПб */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Spb = 38,

  /** Алтайский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Altai = 39,

  /** Бурятский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Buryatiya = 40,

  /** Иркутский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Irkutsk = 41,

  /** Кемеровский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kemerovo = 42,

  /** Красноярский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Krasnoyarsk = 43,

  /** Омский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Omsk = 44,

  /** Республика Хакасия */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Hakasiya = 45,

  /** Республика Алтай */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Raltay = 46,

  /** Республика Тыва */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tuva = 47,

  /** Томский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Tomsk = 48,

  /** Оренбургская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Orenburg = 49,

  /** Белгородский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Belgorod = 50,

  /** Саха */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Sakha = 51,

  /** Екатеринбургский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ekt = 52,

  /** Волгоградский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Volgograd = 53,

  /** Ямало-Ненецкий филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Yamal = 54,

  /** Челябинский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chelyabinsk = 55,

  /** Пермский филиал ПАО "Ростелеком" */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Perm = 56,

  /** Республика Марий Эл */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Maryel = 57,

  /** Пензенская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Penza = 58,

  /** Ингушский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ingushetia = 59,

  /** Кабардино-Балкарский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Nalchik = 60,

  /** Калмыцкий филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Elista = 61,

  /** Ростовский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Rostov = 62,

  /** Дагестанский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mahachkala = 63,

  /** Республика Мордовия */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Mordoviya = 64,

  /** Республика Татарстан (Татарстан) */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Kazan = 65,

  /** Самарская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Samara = 66,

  /** Саратовская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Saratov = 67,

  /** Удмуртская Республика */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Udmurtiya = 68,

  /** Ульяновская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Ulyanovsk = 69,

  /** Чувашская Республика - Чувашия */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Chuvashiya = 70,

  /** Нижегородская область */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Nnovgorod = 71,

  /** Брянский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Bryansk = 72,

  /** Владимирский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vladimir = 73,

  /** Воронежский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Voronezh = 74,

  /** Северо-Осетинский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Vladikavkaz = 75,

  /** Ставропольский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Stavropol = 76,

  /** Республика Карачаево-Черкесская */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Cherkessk = 77,

  /** Республика Адыгея */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Maykop = 78,

  /** Астраханский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Astrakhan = 79,

  /** Краснодарский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Krasnodar = 80,

  /** Тестовый */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Test = 81,

  /** Новосибирский филиал */
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_Novosibirsk = 82,
};

GPBEnumDescriptor *KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_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 KEYAPISTELEMETRYCONTROLV1DictionaryRf_RfType_IsValidValue(int32_t value);

#pragma mark - KEYAPISTELEMETRYCONTROLV1KeyapisTelemetryControlDictionaryV1Root

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос сохранения модели ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelRequest : GPBMessage

/** Шаблон ПУ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос сохранения модели ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1PostDictionaryDeviceModelResponse : GPBMessage

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

/** Шаблон ПУ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос удаления модели ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelRequest : GPBMessage

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

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse

/**
 * Ответ на запрос удаления модели ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1DeleteDictionaryDeviceModelResponse : GPBMessage

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос получения модели ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelRequest : GPBMessage

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

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения модели ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelResponse : GPBMessage

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

/** Элемент справочника моделей */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_FieldNumber_Filter = 1,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_Pagination_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос получения списка моделей ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListRequest : GPBMessage

/** Фильтр */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

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

/** Пагинация */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *paging;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest

/**
 * Запрос получения элементов справочника Макрорегионы (МРФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListRequest : GPBMessage

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest

/**
 * Запрос получения элементов справочника Регионы (РФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListRequest : GPBMessage

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_OrderByType = 1,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_DirectionType = 2,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_Limit = 3,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging : GPBMessage

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

/**
 * Тип направления сортировки.
 * По умолчанию: DESC
 **/
@property(nonatomic, readwrite) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_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 KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging's @c orderByType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging'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 SetKEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_OrderByType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message, int32_t value);

/**
 * Fetches the raw value of a @c KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging's @c directionType property, even
 * if the value was not defined by the enum at the time the code was generated.
 **/
int32_t KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message);
/**
 * Sets the raw value of an @c KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging'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 SetKEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging_DirectionType_RawValue(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelPaging *message, int32_t value);

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter_FieldNumber_TitlesArray = 1,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter_FieldNumber_ModelKindsArray = 2,
};

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

/** По заголовку элемента */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *titlesArray;
/** The number of items in @c titlesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger titlesArray_Count;

/** По типам модели */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *modelKindsArray;
/** The number of items in @c modelKindsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger modelKindsArray_Count;

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelListResponse_Type_OneOfCase_Data_p = 1,
};

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

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

/** Элемент справочника моделей ПУ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel *data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения элементов справочника Макрорегионы (МРФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfListResponse : GPBMessage

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

/** Элемент справочника Макрорегионы (МРФ) */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryMrf *data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryMrf

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_Id_p = 1,
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_CreatedAt = 2,
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_ChangedAt = 3,
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_Title = 4,
  KEYAPISTELEMETRYCONTROLV1DictionaryMrf_FieldNumber_Code = 5,
};

/**
 * Элемент справочника Макрорегионы (МРФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1DictionaryMrf : GPBMessage

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

/** Дата создания */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *createdAt;
/** Test to see if @c createdAt has been set. */
@property(nonatomic, readwrite) BOOL hasCreatedAt;

/**
 * Дата последнего изменения.
 * Заполняется и обновляется сервером.
 * Заполняется при создании и изменении
 **/
@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, strong, null_resettable) GPBStringValue *title;
/** Test to see if @c title has been set. */
@property(nonatomic, readwrite) BOOL hasTitle;

/** Техническое наименование элемента */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *code;
/** Test to see if @c code has been set. */
@property(nonatomic, readwrite) BOOL hasCode;

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения элементов справочника Регионы (РФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryRfListResponse : GPBMessage

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

/** Элемент справочника Регионы (РФ) */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryRf *data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryPermission

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryPermission_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1DictionaryPermission_FieldNumber_PermissionType = 1,
};

/**
 * Элемент справочника Разрешения Телеметрии
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1DictionaryPermission : GPBMessage

/** Элемент справочника Разрешения Телеметрии */
@property(nonatomic, readwrite) KEYAPISTELEMETRYCONTROLV1DictionaryPermission_PermissionType permissionType;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryRf

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_Id_p = 1,
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_CreatedAt = 2,
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_ChangedAt = 3,
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_Title = 4,
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_Code = 5,
  KEYAPISTELEMETRYCONTROLV1DictionaryRf_FieldNumber_MrfId = 6,
};

/**
 * Элемент справочника Регионы (РФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1DictionaryRf : GPBMessage

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

/** Дата создания */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *createdAt;
/** Test to see if @c createdAt has been set. */
@property(nonatomic, readwrite) BOOL hasCreatedAt;

/**
 * Дата последнего изменения.
 * Заполняется и обновляется сервером.
 * Заполняется при создании и изменении
 **/
@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, strong, null_resettable) GPBStringValue *title;
/** Test to see if @c title has been set. */
@property(nonatomic, readwrite) BOOL hasTitle;

/** Техническое наименование элемента */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *code;
/** Test to see if @c code has been set. */
@property(nonatomic, readwrite) BOOL hasCode;

/** Принадлежность региона к Макрорегиону (МРФ) */
@property(nonatomic, readwrite) int32_t mrfId;

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountRequest_FieldNumber_Filter = 1,
};

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

/** Фильтр по моделям приборов учета */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModelFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryDeviceModelCountResponse_Type_OneOfCase_Data_p = 1,
};

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

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

/** Всего моделей приборов учета */
@property(nonatomic, readwrite) int32_t data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest

/**
 * Запрос получения количества элементов справочника Макрорегионы (МРФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountRequest : GPBMessage

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения количества элементов справочника Макрорегионы (МРФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryMrfCountResponse : GPBMessage

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

/** Всего элементов справочника Макрорегионы (МРФ) */
@property(nonatomic, readwrite) int32_t data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest

/**
 * Запрос получения количества элементов справочника Регионы (РФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountRequest : GPBMessage

@end

#pragma mark - KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse_Type_OneOfCase) {
  KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse_Type_OneOfCase_Data_p = 1,
};

/**
 * Ответ на запрос получения количества элементов справочника Регионы (РФ)
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1GetDictionaryRfCountResponse : GPBMessage

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

/** Всего элементов справочника Регионы (РФ) */
@property(nonatomic, readwrite) int32_t data_p;

@end

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

#pragma mark - KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel

typedef GPB_ENUM(KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber) {
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_Id_p = 1,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_CreatedAt = 2,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_ChangedAt = 3,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_Title = 4,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_Protocol = 5,
  KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel_FieldNumber_ModelKind = 6,
};

/**
 * Элемент справочника моделей ПУ
 **/
GPB_FINAL @interface KEYAPISTELEMETRYCONTROLV1DictionaryDeviceModel : GPBMessage

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

/** Дата создания */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *createdAt;
/** Test to see if @c createdAt has been set. */
@property(nonatomic, readwrite) BOOL hasCreatedAt;

/**
 * Дата последнего изменения.
 * Заполняется и обновляется сервером.
 * Заполняется при создании и изменении
 **/
@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, strong, null_resettable) GPBStringValue *title;
/** Test to see if @c title has been set. */
@property(nonatomic, readwrite) BOOL hasTitle;

/** Протокол счетчика */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *protocol;
/** Test to see if @c protocol has been set. */
@property(nonatomic, readwrite) BOOL hasProtocol;

/** Тип модели */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *modelKind;
/** Test to see if @c modelKind has been set. */
@property(nonatomic, readwrite) BOOL hasModelKind;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
