// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/device/v1/keyapis_device_cms_phone_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 KEYAPISDEVICEV1CmsPhone;
@class KEYAPISDEVICEV1CmsPhoneFilter;
@class KEYAPISDEVICEV1CmsPhonePaging;
@class KEYAPISDEVICEV1CmsPhone_SavingError_Conflict;
@class KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error;
@class KEYAPISDEVICEV1GetCmsPhoneListResponse_Error;
@class KEYAPISDEVICEV1GetCmsPhoneResponse_Error;
@class KEYAPISDEVICEV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISDEVICEV1CmsPhone_StatusType

/**
 * Справочник статусов аналоговой трубки.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhone_StatusType) {
  /**
   * 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.
   **/
  KEYAPISDEVICEV1CmsPhone_StatusType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISDEVICEV1CmsPhone_StatusType_StatusTypeUnknown = 0,

  /** Ожидает активации */
  KEYAPISDEVICEV1CmsPhone_StatusType_PendingActive = 1,

  /** Активна */
  KEYAPISDEVICEV1CmsPhone_StatusType_Active = 2,

  /** Ожидает блокировки */
  KEYAPISDEVICEV1CmsPhone_StatusType_PendingBlocked = 3,

  /** Заблокирована */
  KEYAPISDEVICEV1CmsPhone_StatusType_Blocked = 4,
};

GPBEnumDescriptor *KEYAPISDEVICEV1CmsPhone_StatusType_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 KEYAPISDEVICEV1CmsPhone_StatusType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISDEVICEV1CmsPhonePaging_OrderByType

/**
 * Справочник типов значений сортировки.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhonePaging_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.
   **/
  KEYAPISDEVICEV1CmsPhonePaging_OrderByType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISDEVICEV1CmsPhonePaging_OrderByType_OrderByTypeUnknown = 0,

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

  /** По статусу доступности */
  KEYAPISDEVICEV1CmsPhonePaging_OrderByType_Status = 2,

  /** Дата последнего изменения */
  KEYAPISDEVICEV1CmsPhonePaging_OrderByType_ChangedAt = 3,

  /** Дата создания */
  KEYAPISDEVICEV1CmsPhonePaging_OrderByType_CreatedAt = 4,
};

GPBEnumDescriptor *KEYAPISDEVICEV1CmsPhonePaging_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 KEYAPISDEVICEV1CmsPhonePaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISDEVICEV1CmsPhonePaging_DirectionType

/**
 * Справочник типов направлений сортировки;
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhonePaging_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.
   **/
  KEYAPISDEVICEV1CmsPhonePaging_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISDEVICEV1CmsPhonePaging_DirectionType_DirectionTypeUnknown = 0,

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

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

GPBEnumDescriptor *KEYAPISDEVICEV1CmsPhonePaging_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 KEYAPISDEVICEV1CmsPhonePaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISDEVICEV1KeyapisDeviceCmsPhoneV1Root

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

#pragma mark - KEYAPISDEVICEV1CmsPhone

typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhone_FieldNumber) {
  KEYAPISDEVICEV1CmsPhone_FieldNumber_Id_p = 1,
  KEYAPISDEVICEV1CmsPhone_FieldNumber_OrponId = 2,
  KEYAPISDEVICEV1CmsPhone_FieldNumber_Room = 3,
  KEYAPISDEVICEV1CmsPhone_FieldNumber_DeviceId = 4,
  KEYAPISDEVICEV1CmsPhone_FieldNumber_StatusType = 5,
  KEYAPISDEVICEV1CmsPhone_FieldNumber_CreatedAt = 6,
  KEYAPISDEVICEV1CmsPhone_FieldNumber_ChangedAt = 7,
  KEYAPISDEVICEV1CmsPhone_FieldNumber_RetryCount = 8,
};

/**
 * Аналоговая трубка.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISDEVICEV1CmsPhone : GPBMessage

/**
 * Идентификатор.
 * # Диапазон: 0..2147483647
 **/
@property(nonatomic, readwrite) int32_t id_p;

/**
 * ОРПОН Дома.
 * # Диапазон: 0..2147483647
 **/
@property(nonatomic, readwrite) int64_t orponId;

/**
 * Номер квартиры.
 * # Диапазон: 1..5
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *room;

/**
 * Идентификатор устройства.
 * # Диапазон: 0..2147483647
 **/
@property(nonatomic, readwrite) int32_t deviceId;

/** Статус аналоговой трубки */
@property(nonatomic, readwrite) KEYAPISDEVICEV1CmsPhone_StatusType statusType;

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

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

/**
 * Счетчик попыток обновления.
 * # Диапазон: 0..2147483647
 **/
@property(nonatomic, readwrite) int32_t retryCount;

@end

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

#pragma mark - KEYAPISDEVICEV1CmsPhone_SavingError

typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhone_SavingError_FieldNumber) {
  KEYAPISDEVICEV1CmsPhone_SavingError_FieldNumber_Conflict = 1,
};

typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhone_SavingError_Reason_OneOfCase) {
  KEYAPISDEVICEV1CmsPhone_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1CmsPhone_SavingError_Reason_OneOfCase_Conflict = 1,
};

/**
 * Ошибка сохранения.
 * Эти проверки выполняются при работе с базой данных и сторонними сервисами
 **/
GPB_FINAL @interface KEYAPISDEVICEV1CmsPhone_SavingError : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) KEYAPISDEVICEV1CmsPhone_SavingError_Reason_OneOfCase reasonOneOfCase;

/** Конфликт версий */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1CmsPhone_SavingError_Conflict *conflict;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void KEYAPISDEVICEV1CmsPhone_SavingError_ClearReasonOneOfCase(KEYAPISDEVICEV1CmsPhone_SavingError *message);

#pragma mark - KEYAPISDEVICEV1CmsPhone_SavingError_Conflict

/**
 * Конфликт версий.
 * Причины:
 * - В базе хранится другая версия строки, значения changed_at оличаются
 **/
GPB_FINAL @interface KEYAPISDEVICEV1CmsPhone_SavingError_Conflict : GPBMessage

@end

#pragma mark - KEYAPISDEVICEV1CmsPhoneFilter

typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhoneFilter_FieldNumber) {
  KEYAPISDEVICEV1CmsPhoneFilter_FieldNumber_DeviceIdsArray = 1,
  KEYAPISDEVICEV1CmsPhoneFilter_FieldNumber_StatusTypesArray = 2,
  KEYAPISDEVICEV1CmsPhoneFilter_FieldNumber_OrponIdsArray = 3,
  KEYAPISDEVICEV1CmsPhoneFilter_FieldNumber_RoomsArray = 4,
};

/**
 * Фильтр по аналоговой трубким
 **/
GPB_FINAL @interface KEYAPISDEVICEV1CmsPhoneFilter : GPBMessage

/** По идентификаторам устройства */
@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;

/** По статусам аналоговой трубки */
// |statusTypesArray| contains |KEYAPISDEVICEV1CmsPhone_StatusType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *statusTypesArray;
/** The number of items in @c statusTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger statusTypesArray_Count;

/** По идентификаторам ОРПОН (дома) */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt64Array *orponIdsArray;
/** The number of items in @c orponIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger orponIdsArray_Count;

/** По номерам квартиры */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *roomsArray;
/** The number of items in @c roomsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger roomsArray_Count;

@end

#pragma mark - KEYAPISDEVICEV1CmsPhonePaging

typedef GPB_ENUM(KEYAPISDEVICEV1CmsPhonePaging_FieldNumber) {
  KEYAPISDEVICEV1CmsPhonePaging_FieldNumber_OrderByType = 1,
  KEYAPISDEVICEV1CmsPhonePaging_FieldNumber_DirectionType = 2,
  KEYAPISDEVICEV1CmsPhonePaging_FieldNumber_Limit = 3,
  KEYAPISDEVICEV1CmsPhonePaging_FieldNumber_Offset = 4,
};

/**
 * Постраничный вывод
 **/
GPB_FINAL @interface KEYAPISDEVICEV1CmsPhonePaging : GPBMessage

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

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

/**
 * Количество записей на страницу.
 * Если значение 0 (не передано), то будет взято значение по умолчанию.
 * # Диапазон: 0..100.
 * # По умолчанию: 20
 **/
@property(nonatomic, readwrite) int32_t limit;

/**
 * Сдвиг.
 * # Диапазон: 0..2147483647
 **/
@property(nonatomic, readwrite) int32_t offset;

@end

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

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

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneListRequest

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneListRequest_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneListRequest_FieldNumber_Filter = 1,
  KEYAPISDEVICEV1GetCmsPhoneListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneListRequest_Pagination_OneOfCase) {
  KEYAPISDEVICEV1GetCmsPhoneListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1GetCmsPhoneListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос на получение списка аналоговых трубок
 **/
GPB_FINAL @interface KEYAPISDEVICEV1GetCmsPhoneListRequest : GPBMessage

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

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

/** Стандартный постраничный вывод */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1CmsPhonePaging *paging;

@end

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

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneListResponse

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneListResponse_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneListResponse_FieldNumber_Data_p = 1,
  KEYAPISDEVICEV1GetCmsPhoneListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneListResponse_Type_OneOfCase) {
  KEYAPISDEVICEV1GetCmsPhoneListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1GetCmsPhoneListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISDEVICEV1GetCmsPhoneListResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на получение списка аналоговых трубок
 **/
GPB_FINAL @interface KEYAPISDEVICEV1GetCmsPhoneListResponse : GPBMessage

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

/** Пресет */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1CmsPhone *data_p;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1GetCmsPhoneListResponse_Error *error;

@end

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

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneListResponse_Error

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneListResponse_Error_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneListResponse_Error_Reason_OneOfCase) {
  KEYAPISDEVICEV1GetCmsPhoneListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1GetCmsPhoneListResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса получения списка аналоговых трубок
 **/
GPB_FINAL @interface KEYAPISDEVICEV1GetCmsPhoneListResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) KEYAPISDEVICEV1GetCmsPhoneListResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void KEYAPISDEVICEV1GetCmsPhoneListResponse_Error_ClearReasonOneOfCase(KEYAPISDEVICEV1GetCmsPhoneListResponse_Error *message);

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneRequest

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneRequest_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneResponse

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneResponse_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneResponse_FieldNumber_Data_p = 1,
  KEYAPISDEVICEV1GetCmsPhoneResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneResponse_Type_OneOfCase) {
  KEYAPISDEVICEV1GetCmsPhoneResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1GetCmsPhoneResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISDEVICEV1GetCmsPhoneResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Аналоговая трубка */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1CmsPhone *data_p;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1GetCmsPhoneResponse_Error *error;

@end

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

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneResponse_Error

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneResponse_Error_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneResponse_Error_Reason_OneOfCase) {
  KEYAPISDEVICEV1GetCmsPhoneResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1GetCmsPhoneResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса получения баннера
 **/
GPB_FINAL @interface KEYAPISDEVICEV1GetCmsPhoneResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) KEYAPISDEVICEV1GetCmsPhoneResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void KEYAPISDEVICEV1GetCmsPhoneResponse_Error_ClearReasonOneOfCase(KEYAPISDEVICEV1GetCmsPhoneResponse_Error *message);

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneCountRequest

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneCountRequest_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneCountResponse

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneCountResponse_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_FieldNumber_Data_p = 1,
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneCountResponse_Type_OneOfCase) {
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения количества аналоговых трубок
 **/
GPB_FINAL @interface KEYAPISDEVICEV1GetCmsPhoneCountResponse : GPBMessage

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

/** Всего устройтсв */
@property(nonatomic, readwrite) int32_t data_p;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error *error;

@end

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

#pragma mark - KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error_FieldNumber) {
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error_Reason_OneOfCase) {
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса получения количества аналоговых трубок
 **/
GPB_FINAL @interface KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error : GPBMessage

/** Причина ошибки */
@property(nonatomic, readonly) KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Ошибка валидации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISDEVICEV1ValidationError *validation;

@end

/**
 * Clears whatever value was set for the oneof 'reason'.
 **/
void KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error_ClearReasonOneOfCase(KEYAPISDEVICEV1GetCmsPhoneCountResponse_Error *message);

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneRequest

typedef GPB_ENUM(KEYAPISDEVICEV1DeleteCmsPhoneRequest_FieldNumber) {
  KEYAPISDEVICEV1DeleteCmsPhoneRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneResponse

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

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest

typedef GPB_ENUM(KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest_FieldNumber) {
  KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest_FieldNumber_DeviceId = 1,
};

/**
 * Запрос удаления аналоговых трубок по идентификатору устройства
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest : GPBMessage

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

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdResponse

/**
 * Ответ на запрос удаления аналоговых трубок по идентификатору устройства
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdResponse : GPBMessage

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest

typedef GPB_ENUM(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest_FieldNumber) {
  KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest_FieldNumber_OrponId = 1,
};

/**
 * Запрос удаления аналоговых трубок по идентификатору ОРПОН
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest : GPBMessage

/** Идентификатор ОРПОН */
@property(nonatomic, readwrite) int64_t orponId;

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneOrponIdResponse

/**
 * Ответ на запрос удаления аналоговых трубок по идентификатору ОРПОН
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneOrponIdResponse : GPBMessage

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest

typedef GPB_ENUM(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest_FieldNumber) {
  KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest_FieldNumber_OrponId = 1,
  KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest_FieldNumber_RoomNumber = 2,
};

/**
 * Запрос удаления аналоговых трубок по идентификатору ОРПОН и номеру квартиры
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest : GPBMessage

/** Идентификатор ОРПОН */
@property(nonatomic, readwrite) int64_t orponId;

/** Номер квартиры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *roomNumber;

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberResponse

/**
 * Ответ на запрос удаления аналоговых трубок по идентификатору ОРПОН и номеру квартиры
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberResponse : GPBMessage

@end

#pragma mark - KEYAPISDEVICEV1PostCmsPhoneRefreshRequest

typedef GPB_ENUM(KEYAPISDEVICEV1PostCmsPhoneRefreshRequest_FieldNumber) {
  KEYAPISDEVICEV1PostCmsPhoneRefreshRequest_FieldNumber_IdsArray = 1,
};

/**
 * Запрос на принудительное обновление статуса аналоговой трубки
 **/
GPB_FINAL @interface KEYAPISDEVICEV1PostCmsPhoneRefreshRequest : GPBMessage

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

@end

#pragma mark - KEYAPISDEVICEV1PostCmsPhoneRefreshResponse

/**
 * Ответ на запрос на принудительное обновление статуса аналоговой трубки
 **/
GPB_FINAL @interface KEYAPISDEVICEV1PostCmsPhoneRefreshResponse : GPBMessage

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest

typedef GPB_ENUM(KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest_FieldNumber) {
  KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest_FieldNumber_Orpon = 1,
  KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest_FieldNumber_RoomNumber = 2,
  KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest_FieldNumber_DeviceId = 3,
};

/**
 * Запрос удаления аналоговых трубок по идентификатору ОРПОН, номеру квартиры и идентификатору устройства
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest : GPBMessage

/** Идентификатор ОРПОН */
@property(nonatomic, readwrite) int64_t orpon;

/** Номер квартиры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *roomNumber;

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

@end

#pragma mark - KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdResponse

/**
 * Ответ на запрос удаления аналоговых трубок по идентификатору ОРПОН, номеру квартиры и идентификатору устройства
 **/
GPB_FINAL @interface KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdResponse : GPBMessage

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
