// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/access_control/v1/keyapis_access_control_rfid_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 KEYAPISACCESSCONTROLV1DeleteRfidResponse_Error;
@class KEYAPISACCESSCONTROLV1GetRfidCountResponse_Error;
@class KEYAPISACCESSCONTROLV1GetRfidListResponse_Error;
@class KEYAPISACCESSCONTROLV1GetRfidResponse_Error;
@class KEYAPISACCESSCONTROLV1PostRfidResponse_Error;
@class KEYAPISACCESSCONTROLV1Rfid;
@class KEYAPISACCESSCONTROLV1RfidFilter;
@class KEYAPISACCESSCONTROLV1RfidPaging;
@class KEYAPISACCESSCONTROLV1Rfid_SavingError;
@class KEYAPISACCESSCONTROLV1Rfid_SavingError_Conflict;
@class KEYAPISACCESSCONTROLV1Rfid_SavingError_ExceededQuantityOfKeysForRoom;
@class KEYAPISACCESSCONTROLV1Rfid_SavingError_HolderTypeForbidden;
@class KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyCodeCannotBeChanged;
@class KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyExist;
@class KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyIsUsed;
@class KEYAPISACCESSCONTROLV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISACCESSCONTROLV1Rfid_PayType

/** Тип оплаты */
typedef GPB_ENUM(KEYAPISACCESSCONTROLV1Rfid_PayType) {
  /**
   * 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.
   **/
  KEYAPISACCESSCONTROLV1Rfid_PayType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSCONTROLV1Rfid_PayType_PayTypeUnknown = 0,

  /** Платный */
  KEYAPISACCESSCONTROLV1Rfid_PayType_Paid = 1,

  /** Бесплатный */
  KEYAPISACCESSCONTROLV1Rfid_PayType_Free = 2,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1Rfid_PayType_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 KEYAPISACCESSCONTROLV1Rfid_PayType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1Rfid_HolderType

/** Тип владельца ключа */
typedef GPB_ENUM(KEYAPISACCESSCONTROLV1Rfid_HolderType) {
  /**
   * 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.
   **/
  KEYAPISACCESSCONTROLV1Rfid_HolderType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISACCESSCONTROLV1Rfid_HolderType_HolderTypeUnknown = 0,

  /** Жилец */
  KEYAPISACCESSCONTROLV1Rfid_HolderType_Master = 1,

  /** Сотрудник УК */
  KEYAPISACCESSCONTROLV1Rfid_HolderType_Company = 2,

  /** Ключ сотрудника ГАП */
  KEYAPISACCESSCONTROLV1Rfid_HolderType_ExternalSeller = 3,

  /** Системный ключ */
  KEYAPISACCESSCONTROLV1Rfid_HolderType_System = 4,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1Rfid_HolderType_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 KEYAPISACCESSCONTROLV1Rfid_HolderType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1RfidPaging_OrderByType

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

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

  /** По времени изменения */
  KEYAPISACCESSCONTROLV1RfidPaging_OrderByType_ChangedAt = 2,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1RfidPaging_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 KEYAPISACCESSCONTROLV1RfidPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1RfidPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1RfidPaging_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 KEYAPISACCESSCONTROLV1RfidPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISACCESSCONTROLV1KeyapisAccessControlRfidV1Root

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

#pragma mark - KEYAPISACCESSCONTROLV1Rfid

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1Rfid_FieldNumber) {
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_Id_p = 1,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_UserId = 2,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_Description_p = 3,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_CompanyId = 4,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_CreatorId = 5,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_Key = 6,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_PayType = 7,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_HolderType = 8,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_CreatedAt = 9,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_ChangedAt = 10,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_Orpon = 11,
  KEYAPISACCESSCONTROLV1Rfid_FieldNumber_RoomNumber = 12,
};

/**
 * Ключ.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1Rfid : GPBMessage

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

/** Идентификатор пользователя */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *userId;
/** Test to see if @c userId has been set. */
@property(nonatomic, readwrite) BOOL hasUserId;

/**
 * Системное описание.
 * Обычно оставляет УК/Админ, пользователь его не видет
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *description_p;
/** Test to see if @c description_p has been set. */
@property(nonatomic, readwrite) BOOL hasDescription_p;

/** Идентификатор компании */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *companyId;
/** Test to see if @c companyId has been set. */
@property(nonatomic, readwrite) BOOL hasCompanyId;

/** Идентификатор создателя */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *creatorId;
/** Test to see if @c creatorId has been set. */
@property(nonatomic, readwrite) BOOL hasCreatorId;

/**
 * Код ключа (UID).
 * Уникальное значение.
 * # Паттерн: /^[0-9a-fA-F]{1,14}$/
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *key;

/** Тип оплаты */
@property(nonatomic, readwrite) KEYAPISACCESSCONTROLV1Rfid_PayType payType;

/** Тип владельца ключа */
@property(nonatomic, readwrite) KEYAPISACCESSCONTROLV1Rfid_HolderType holderType;

/**
 * Дата создания.
 * # Тип: 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;

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

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

@end

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

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

#pragma mark - KEYAPISACCESSCONTROLV1Rfid_SavingError

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1Rfid_SavingError_FieldNumber) {
  KEYAPISACCESSCONTROLV1Rfid_SavingError_FieldNumber_Conflict = 1,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_FieldNumber_KeyExist = 2,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_FieldNumber_KeyCodeCannotBeChanged = 3,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_FieldNumber_ExceededQuantityOfKeysForRoom = 4,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_FieldNumber_KeyIsUsed = 5,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_FieldNumber_HolderTypeForbidden = 6,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase_Conflict = 1,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase_KeyExist = 2,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase_KeyCodeCannotBeChanged = 3,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase_ExceededQuantityOfKeysForRoom = 4,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase_KeyIsUsed = 5,
  KEYAPISACCESSCONTROLV1Rfid_SavingError_Reason_OneOfCase_HolderTypeForbidden = 6,
};

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

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

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

/** Данный ключ уже существует */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyExist *keyExist;

/** Нельзя изменить код ключа */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyCodeCannotBeChanged *keyCodeCannotBeChanged;

/** Превышено максимально допустимое количество ключей (16) для квартиры */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid_SavingError_ExceededQuantityOfKeysForRoom *exceededQuantityOfKeysForRoom;

/** Ключ используется на другой квартире */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyIsUsed *keyIsUsed;

/** Нельзя создавать / изменять ключ с переданным типом владельца */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid_SavingError_HolderTypeForbidden *holderTypeForbidden;

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1Rfid_SavingError_Conflict

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyExist

/**
 * Данный ключ уже существует.
 * Причины:
 * - При попытке создания ключа в системе уже существует ключ с таким же кодом
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyExist : GPBMessage

@end

#pragma mark - KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyCodeCannotBeChanged

/**
 * Нельзя изменить код ключа.
 * Причины:
 * - При изменении ключа нельзя менять поле key (код ключа)
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyCodeCannotBeChanged : GPBMessage

@end

#pragma mark - KEYAPISACCESSCONTROLV1Rfid_SavingError_ExceededQuantityOfKeysForRoom

/**
 * Превышено максимально допустимое количество ключей (16) для квартиры
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1Rfid_SavingError_ExceededQuantityOfKeysForRoom : GPBMessage

@end

#pragma mark - KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyIsUsed

/**
 * Ключ используется на другой квартире
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1Rfid_SavingError_KeyIsUsed : GPBMessage

@end

#pragma mark - KEYAPISACCESSCONTROLV1Rfid_SavingError_HolderTypeForbidden

/**
 * Нельзя создавать / изменять ключ с переданным типом владельца.
 * Доступные типы владельца:
 * - Жилец (мастер)
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1Rfid_SavingError_HolderTypeForbidden : GPBMessage

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRfidResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRfidResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRfidResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRfidResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Ключ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRfidResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRfidResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidListRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidListRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidListRequest_FieldNumber_Filter = 1,
  KEYAPISACCESSCONTROLV1GetRfidListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidListRequest_Pagination_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRfidListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRfidListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос получения списка ключей
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1GetRfidListRequest : GPBMessage

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidListResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidListResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidListResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRfidListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidListResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRfidListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRfidListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRfidListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Ключ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidListResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidListResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidListResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRfidListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRfidListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidCountRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidCountRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidCountResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidCountResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidCountResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_Type_OneOfCase_Error = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetRfidCountResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidCountResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetRfidCountResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetRfidCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PostRfidRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostRfidRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostRfidRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос создания ключа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PostRfidRequest : GPBMessage

/** Ключ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISACCESSCONTROLV1PostRfidResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostRfidResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostRfidResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1PostRfidResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostRfidResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1PostRfidResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PostRfidResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1PostRfidResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Ключ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PostRfidResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostRfidResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostRfidResponse_Error_FieldNumber_Validation = 1,
  KEYAPISACCESSCONTROLV1PostRfidResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostRfidResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1PostRfidResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PostRfidResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISACCESSCONTROLV1PostRfidResponse_Error_Reason_OneOfCase_Saving = 2,
};

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

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

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

/** Ошибка сохранения */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1Rfid_SavingError *saving;

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1DeleteRfidRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteRfidRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1DeleteRfidRequest_FieldNumber_Id_p = 1,
  KEYAPISACCESSCONTROLV1DeleteRfidRequest_FieldNumber_IsForceDelete = 2,
};

/**
 * Запрос удаления ключа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1DeleteRfidRequest : GPBMessage

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

/**
 * Флаг принудительного удаления ключа.
 * При принудительном удалении не гарантируется удаление ключа со всех физических устройств
 **/
@property(nonatomic, readwrite) BOOL isForceDelete;

@end

#pragma mark - KEYAPISACCESSCONTROLV1DeleteRfidResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteRfidResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1DeleteRfidResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteRfidResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1DeleteRfidResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1DeleteRfidResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1DeleteRfidResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteRfidResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1DeleteRfidResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteRfidResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1DeleteRfidResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1DeleteRfidResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1RfidFilter

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber) {
  KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber_HolderTypesArray = 1,
  KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber_PayTypesArray = 2,
  KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber_OrponsArray = 3,
  KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber_RoomNumbersArray = 4,
  KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber_UserIdsArray = 5,
  KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber_CompanyIdsArray = 6,
  KEYAPISACCESSCONTROLV1RfidFilter_FieldNumber_KeysArray = 7,
};

/**
 * Фильтр по ключам
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1RfidFilter : GPBMessage

/** По типам владельца */
// |holderTypesArray| contains |KEYAPISACCESSCONTROLV1Rfid_HolderType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *holderTypesArray;
/** The number of items in @c holderTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger holderTypesArray_Count;

/** По типам оплаты */
// |payTypesArray| contains |KEYAPISACCESSCONTROLV1Rfid_PayType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *payTypesArray;
/** The number of items in @c payTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger payTypesArray_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) 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, strong, null_resettable) GPBInt32Array *userIdsArray;
/** The number of items in @c userIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger userIdsArray_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;

/** По кодам ключа */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *keysArray;
/** The number of items in @c keysArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger keysArray_Count;

@end

#pragma mark - KEYAPISACCESSCONTROLV1RfidPaging

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1RfidPaging_FieldNumber) {
  KEYAPISACCESSCONTROLV1RfidPaging_FieldNumber_OrderByType = 1,
  KEYAPISACCESSCONTROLV1RfidPaging_FieldNumber_DirectionType = 2,
  KEYAPISACCESSCONTROLV1RfidPaging_FieldNumber_Limit = 3,
  KEYAPISACCESSCONTROLV1RfidPaging_FieldNumber_Offset = 4,
};

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

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

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

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

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
