// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/access_control/v1/keyapis_access_control_access_control_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 KEYAPISACCESSCONTROLV1GetRoomListResponse_Error;
@class KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error;
@class KEYAPISACCESSCONTROLV1GetRoomResponse_Error;
@class KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error;
@class KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_IdExpected;
@class KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_OrponExpected;
@class KEYAPISACCESSCONTROLV1Room;
@class KEYAPISACCESSCONTROLV1RoomFilter;
@class KEYAPISACCESSCONTROLV1RoomPaging;
@class KEYAPISACCESSCONTROLV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISACCESSCONTROLV1Room_Type

/** Тип */
typedef GPB_ENUM(KEYAPISACCESSCONTROLV1Room_Type) {
  /**
   * 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.
   **/
  KEYAPISACCESSCONTROLV1Room_Type_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSCONTROLV1Room_Type_TypeUnknown = 0,

  /** Этаж */
  KEYAPISACCESSCONTROLV1Room_Type_Floor = 1,

  /** Подъезд */
  KEYAPISACCESSCONTROLV1Room_Type_Entrance = 2,

  /** Апартаменты */
  KEYAPISACCESSCONTROLV1Room_Type_Apartment = 3,

  /** Вводно-распределительные устройства */
  KEYAPISACCESSCONTROLV1Room_Type_WaterDistribution = 4,

  /** Индивидуальный тепловой пункт */
  KEYAPISACCESSCONTROLV1Room_Type_HeatPoint = 5,

  /** Кладовая */
  KEYAPISACCESSCONTROLV1Room_Type_Pantry = 6,

  /** Колясочная */
  KEYAPISACCESSCONTROLV1Room_Type_Wheelchair = 7,

  /** Коммутационный шкаф */
  KEYAPISACCESSCONTROLV1Room_Type_WiringCloset = 8,

  /** Консьержная */
  KEYAPISACCESSCONTROLV1Room_Type_Concierge = 9,

  /** КПП */
  KEYAPISACCESSCONTROLV1Room_Type_Checkpoint = 10,

  /** Машиноместо */
  KEYAPISACCESSCONTROLV1Room_Type_ParkingPlace = 11,

  /** Офис */
  KEYAPISACCESSCONTROLV1Room_Type_Office = 12,

  /** Подвал */
  KEYAPISACCESSCONTROLV1Room_Type_Basement = 13,

  /** Подстанция */
  KEYAPISACCESSCONTROLV1Room_Type_Substation = 14,

  /** Помещение правления ТСЖ */
  KEYAPISACCESSCONTROLV1Room_Type_HomeownersRoom = 15,

  /** Тамбур */
  KEYAPISACCESSCONTROLV1Room_Type_Tambour = 16,

  /** Узел ввода */
  KEYAPISACCESSCONTROLV1Room_Type_InputNode = 17,

  /** Лобби */
  KEYAPISACCESSCONTROLV1Room_Type_Lobby = 18,

  /** Чердак */
  KEYAPISACCESSCONTROLV1Room_Type_Attic = 19,

  /** Шахта лифта */
  KEYAPISACCESSCONTROLV1Room_Type_ElevatorShaft = 20,

  /** Электрощитовая */
  KEYAPISACCESSCONTROLV1Room_Type_Switchboard = 21,

  /** Квартира по умолчанию */
  KEYAPISACCESSCONTROLV1Room_Type_DefaultRoom = 22,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1Room_Type_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 KEYAPISACCESSCONTROLV1Room_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType

/** Справочник значений режимов подписки */
typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType) {
  /**
   * 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.
   **/
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType_ModeTypeUnknown = 0,

  /** Выключено */
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType_Disabled = 1,

  /** Включено */
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType_Enabled = 2,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType_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 KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1RoomPaging_OrderByType

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

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

  /** По времени создания */
  KEYAPISACCESSCONTROLV1RoomPaging_OrderByType_CreatedAt = 2,

  /** По этажу и номеру */
  KEYAPISACCESSCONTROLV1RoomPaging_OrderByType_FloorThenNumber = 3,

  /** По номеру */
  KEYAPISACCESSCONTROLV1RoomPaging_OrderByType_Number = 4,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1RoomPaging_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 KEYAPISACCESSCONTROLV1RoomPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1RoomPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1RoomPaging_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 KEYAPISACCESSCONTROLV1RoomPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISACCESSCONTROLV1KeyapisAccessControlAccessControlV1Root

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

#pragma mark - KEYAPISACCESSCONTROLV1Room

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1Room_FieldNumber) {
  KEYAPISACCESSCONTROLV1Room_FieldNumber_Id_p = 1,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_Number = 2,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_Entrance = 3,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_Floor = 4,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_Area = 5,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_BuildingId = 6,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_CompanyId = 7,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_AbonentId = 8,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_Type = 9,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_CreatedAt = 10,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_DeletedAt = 11,
  KEYAPISACCESSCONTROLV1Room_FieldNumber_IsSubscriptionModeEnabled = 12,
};

/**
 * Квартира
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1Room : GPBMessage

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

/** Номер */
@property(nonatomic, readwrite, copy, null_resettable) NSString *number;

/** Подъезд */
@property(nonatomic, readwrite) int32_t entrance;

/** Этаж */
@property(nonatomic, readwrite) int32_t floor;

/** Площадь */
@property(nonatomic, readwrite) float area;

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

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

/** Номер абонента */
@property(nonatomic, readwrite, copy, null_resettable) NSString *abonentId;

/** Тип */
@property(nonatomic, readwrite) KEYAPISACCESSCONTROLV1Room_Type type;

/**
 * Дата создания.
 * # Тип: 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 *deletedAt;
/** Test to see if @c deletedAt has been set. */
@property(nonatomic, readwrite) BOOL hasDeletedAt;

/** Включен ли режим подписок */
@property(nonatomic, readwrite) BOOL isSubscriptionModeEnabled;

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRoomResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRoomResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Квартира */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Room *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1GetRoomResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_FieldNumber_MrfIdsArray = 1,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_FieldNumber_RfIdsArray = 2,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_FieldNumber_OrponId = 3,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_FieldNumber_RoomNumbersArray = 4,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_FieldNumber_ModeType = 5,
};

/**
 * Запрос на установку режима подписок
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest : GPBMessage

/** Список идентификаторов МРФ */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *mrfIdsArray;
/** The number of items in @c mrfIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger mrfIdsArray_Count;

/** Список идентификаторов РФ */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *rfIdsArray;
/** The number of items in @c rfIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger rfIdsArray_Count;

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

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

/** Значение режима подписок */
@property(nonatomic, readwrite) KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeRequest_ModeType modeType;

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос на установку режима подписок
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse : GPBMessage

/** Тип ответа */
@property(nonatomic, readonly) KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Type_OneOfCase typeOneOfCase;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_FieldNumber_OrponExpected = 1,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_FieldNumber_IdExpected = 2,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_FieldNumber_Validation = 3,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_Reason_OneOfCase_OrponExpected = 1,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_Reason_OneOfCase_IdExpected = 2,
  KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_Reason_OneOfCase_Validation = 3,
};

/**
 * Ошибка
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error : GPBMessage

/** Причина */
@property(nonatomic, readonly) KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_Reason_OneOfCase reasonOneOfCase;

/** Не передано значение ОРПОН */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_OrponExpected *orponExpected;

/** Не передан хотя бы один идентификатор */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_IdExpected *idExpected;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_OrponExpected

/**
 * Не передано значение ОРПОН:
 * - Если переданы номера квартир, то значение параметра ОРПОН обязательно
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_OrponExpected : GPBMessage

@end

#pragma mark - KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_IdExpected

/**
 * Не передан хотя бы один идентификатор:
 * - Должен быть передан хотя бы один из параметров:
 *  - mrf_ids;
 *  - rf_ids;
 *  - opron_id
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PatchRoomSetSubscriptionModeResponse_Error_IdExpected : GPBMessage

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomListRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomListRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomListRequest_FieldNumber_Filter = 1,
  KEYAPISACCESSCONTROLV1GetRoomListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomListRequest_Pagination_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomListResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomListResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomListResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRoomListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomListResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRoomListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Квартира */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Room *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomListResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomListResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomListResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomListResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1GetRoomListResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomCountRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomCountRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomCountResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomCountResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomCountResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomCountResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomCountResponse_Type_OneOfCase_Data_p = 1,
};

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

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

/** Количество */
@property(nonatomic, readwrite) int32_t data_p;

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1RoomFilter

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber) {
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_BuildingIdsArray = 1,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_EntrancesArray = 2,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_FloorsArray = 3,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_CompanyIdsArray = 4,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_TypesArray = 5,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_DeviceIdsArray = 6,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_OrponsArray = 7,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_IsServiceFlag = 8,
  KEYAPISACCESSCONTROLV1RoomFilter_FieldNumber_RoomNumbersArray = 9,
};

/**
 * Фильтр по квартирам
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1RoomFilter : GPBMessage

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

/** По подъездам */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *entrancesArray;
/** The number of items in @c entrancesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger entrancesArray_Count;

/** По этажам */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *floorsArray;
/** The number of items in @c floorsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger floorsArray_Count;

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

/** По типам */
// |typesArray| contains |KEYAPISACCESSCONTROLV1Room_Type|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *typesArray;
/** The number of items in @c typesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger typesArray_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) GPBInt64Array *orponsArray;
/** The number of items in @c orponsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger orponsArray_Count;

/** По признаку служебной квартиры */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isServiceFlag;
/** Test to see if @c isServiceFlag has been set. */
@property(nonatomic, readwrite) BOOL hasIsServiceFlag;

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsRequest_FieldNumber_Orpon = 1,
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsRequest_FieldNumber_RoomNumber = 2,
};

/**
 * Запрос проверки существования квартиры по ОРПОН и её номеру
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsRequest : GPBMessage

/**
 * ОРПОН дома.
 * # Диапазон: 1..9223372036854775807
 **/
@property(nonatomic, readwrite) int64_t orpon;

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос проверки существования квартиры
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse : GPBMessage

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

/** Результат проверки: true - если квартира существует, false - в противном случае */
@property(nonatomic, readwrite) BOOL data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1GetRoomOrponNumberExistsResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1RoomPaging

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1RoomPaging_FieldNumber) {
  KEYAPISACCESSCONTROLV1RoomPaging_FieldNumber_OrderByType = 1,
  KEYAPISACCESSCONTROLV1RoomPaging_FieldNumber_DirectionType = 2,
  KEYAPISACCESSCONTROLV1RoomPaging_FieldNumber_Limit = 3,
  KEYAPISACCESSCONTROLV1RoomPaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISACCESSCONTROLV1ValidationError

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1ValidationError_FieldNumber) {
  KEYAPISACCESSCONTROLV1ValidationError_FieldNumber_Path = 1,
  KEYAPISACCESSCONTROLV1ValidationError_FieldNumber_Message = 2,
};

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

/** Путь к полю в формате наименования прото */
@property(nonatomic, readwrite, copy, null_resettable) NSString *path;

/** Валидационное сообщение */
@property(nonatomic, readwrite, copy, null_resettable) NSString *message;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
