// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/rfidregistry/v1/keyapis_rfidregistry_record_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 KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error;
@class KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Error;
@class KEYAPISRFIDREGISTRYV1GetRecordListResponse_Error;
@class KEYAPISRFIDREGISTRYV1PostRecordResponse_Error;
@class KEYAPISRFIDREGISTRYV1Record;
@class KEYAPISRFIDREGISTRYV1RecordFilter;
@class KEYAPISRFIDREGISTRYV1RecordPaging;
@class KEYAPISRFIDREGISTRYV1Record_AesKeyConfiguration;
@class KEYAPISRFIDREGISTRYV1Record_DataCell;
@class KEYAPISRFIDREGISTRYV1Record_SavingError;
@class KEYAPISRFIDREGISTRYV1Record_SavingError_AlreadyLinked;
@class KEYAPISRFIDREGISTRYV1Record_SavingError_Conflict;
@class KEYAPISRFIDREGISTRYV1Record_SavingError_OwnedByAnotherUser;
@class KEYAPISRFIDREGISTRYV1Record_SavingError_StatusTypeRestricted;
@class KEYAPISRFIDREGISTRYV1Record_SavingError_UidExist;
@class KEYAPISRFIDREGISTRYV1Record_Trailer;
@class KEYAPISRFIDREGISTRYV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISRFIDREGISTRYV1Record_RfidType

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

  /** Брелок */
  KEYAPISRFIDREGISTRYV1Record_RfidType_Fob = 1,

  /** Карта */
  KEYAPISRFIDREGISTRYV1Record_RfidType_Card = 2,

  /** Браслет */
  KEYAPISRFIDREGISTRYV1Record_RfidType_Band = 3,

  /** Стикер */
  KEYAPISRFIDREGISTRYV1Record_RfidType_Sticker = 4,

  /** Активная метка */
  KEYAPISRFIDREGISTRYV1Record_RfidType_ActiveTag = 5,
};

GPBEnumDescriptor *KEYAPISRFIDREGISTRYV1Record_RfidType_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 KEYAPISRFIDREGISTRYV1Record_RfidType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISRFIDREGISTRYV1Record_EncryptionType

/**
 * Справочник типов шифрования ключа.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_EncryptionType) {
  /**
   * 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.
   **/
  KEYAPISRFIDREGISTRYV1Record_EncryptionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISRFIDREGISTRYV1Record_EncryptionType_EncryptionTypeUnknown = 0,

  /** Без шифрования */
  KEYAPISRFIDREGISTRYV1Record_EncryptionType_Sl0 = 1,

  /** С шифрованием, копируемый */
  KEYAPISRFIDREGISTRYV1Record_EncryptionType_Sl1 = 2,

  /** С шифрованием, не копируемый */
  KEYAPISRFIDREGISTRYV1Record_EncryptionType_Sl3 = 3,
};

GPBEnumDescriptor *KEYAPISRFIDREGISTRYV1Record_EncryptionType_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 KEYAPISRFIDREGISTRYV1Record_EncryptionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISRFIDREGISTRYV1Record_StatusType

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

  /** Новый */
  KEYAPISRFIDREGISTRYV1Record_StatusType_New = 1,

  /** Отгружен */
  KEYAPISRFIDREGISTRYV1Record_StatusType_Shipped = 2,

  /** Брак */
  KEYAPISRFIDREGISTRYV1Record_StatusType_Defect = 3,

  /** Использован */
  KEYAPISRFIDREGISTRYV1Record_StatusType_InUse = 4,
};

GPBEnumDescriptor *KEYAPISRFIDREGISTRYV1Record_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 KEYAPISRFIDREGISTRYV1Record_StatusType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType

/**
 * Справочник методов идентификации.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType) {
  /**
   * 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.
   **/
  KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_IdentificationMethodTypeUnknown = 0,

  /** Значение Mifare */
  KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_Mifare = 1,

  /** Значение Bluetooth low energy */
  KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_Ble = 2,

  /** Значение Ultra high frequency */
  KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_Uhf = 3,

  /** Значение em-marine */
  KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_EmMarine = 4,
};

GPBEnumDescriptor *KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_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 KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISRFIDREGISTRYV1RecordPaging_OrderByType

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

  /** По дате перевода в статус new (дате создания) */
  KEYAPISRFIDREGISTRYV1RecordPaging_OrderByType_NewAt = 1,

  /** По времени изменения */
  KEYAPISRFIDREGISTRYV1RecordPaging_OrderByType_ChangedAt = 2,

  /** По времени заказа */
  KEYAPISRFIDREGISTRYV1RecordPaging_OrderByType_OrderAt = 3,

  /** По номеру заказа */
  KEYAPISRFIDREGISTRYV1RecordPaging_OrderByType_OrderNumber = 4,

  /**
   * По рангу для поиска по тексту.
   * Применяется когда передано поле для поиска по тексту.
   * В случае если текстовое поле не передано, применяется значение по умолчанию
   **/
  KEYAPISRFIDREGISTRYV1RecordPaging_OrderByType_Rank = 5,
};

GPBEnumDescriptor *KEYAPISRFIDREGISTRYV1RecordPaging_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 KEYAPISRFIDREGISTRYV1RecordPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISRFIDREGISTRYV1RecordPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISRFIDREGISTRYV1RecordPaging_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 KEYAPISRFIDREGISTRYV1RecordPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISRFIDREGISTRYV1KeyapisRfidregistryRecordV1Root

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

#pragma mark - KEYAPISRFIDREGISTRYV1Record

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_FieldNumber) {
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_Id_p = 1,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_RfidType = 2,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_EncryptionType = 3,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_Uid = 4,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_StatusType = 5,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_NewAt = 6,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_ShippedAt = 7,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_DefectAt = 8,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_InUseAt = 9,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_InUseRfidId = 10,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_DataCellsArray = 11,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_ResourceOwnerId = 12,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_PackageInfoBox = 13,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_PackageInfoPlace = 14,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_ChangedAt = 15,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_AesKeyConfigurationsArray = 16,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_TrailersArray = 17,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_OrderNumber = 18,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_OrderAt = 19,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_InUseResourceOwnerId = 20,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_IsDeleted = 21,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_DeletedAt = 22,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_VendorName = 23,
  KEYAPISRFIDREGISTRYV1Record_FieldNumber_IdentificationMethodType = 24,
};

/**
 * Запись.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record : GPBMessage

/**
 * Идентификатор.
 * Если не передан создаётся сервером.
 * # Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

/** Тип ключа */
@property(nonatomic, readwrite) KEYAPISRFIDREGISTRYV1Record_RfidType rfidType;

/**
 * Тип шифрования ключа.
 * Максимально поддерживаемый ключом тип шифрования
 **/
@property(nonatomic, readwrite) KEYAPISRFIDREGISTRYV1Record_EncryptionType encryptionType;

/**
 * Номер ключа.
 * Указывается при создании.
 * # Диапазон: 1..14
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *uid;

/** Тип статуса ключа */
@property(nonatomic, readwrite) KEYAPISRFIDREGISTRYV1Record_StatusType statusType;

/**
 * Дата перевода в статус "Новый".
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *newAt NS_RETURNS_NOT_RETAINED;
/** Test to see if @c newAt has been set. */
@property(nonatomic, readwrite) BOOL hasNewAt;

/**
 * Дата перевода в статус "Отгружен".
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *shippedAt;
/** Test to see if @c shippedAt has been set. */
@property(nonatomic, readwrite) BOOL hasShippedAt;

/**
 * Дата перевода в статус "Брак".
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *defectAt;
/** Test to see if @c defectAt has been set. */
@property(nonatomic, readwrite) BOOL hasDefectAt;

/**
 * Дата перевода в статус "Использован".
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *inUseAt;
/** Test to see if @c inUseAt has been set. */
@property(nonatomic, readwrite) BOOL hasInUseAt;

/**
 * Идентификатор привязанного ключа.
 * Заполняется при переводе в статус "Использован".
 * # Диапазон: 0..16
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *inUseRfidId;
/** Test to see if @c inUseRfidId has been set. */
@property(nonatomic, readwrite) BOOL hasInUseRfidId;

/** Содержимое ячеек ключа */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISRFIDREGISTRYV1Record_DataCell*> *dataCellsArray;
/** The number of items in @c dataCellsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataCellsArray_Count;

/**
 * Идентификатор владельца.
 * Заполняется сервером.
 * # Диапазон: 0..255
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *resourceOwnerId;

/**
 * Номер коробки.
 * # Диапазон: 1..2147483647
 **/
@property(nonatomic, readwrite) int32_t packageInfoBox;

/**
 * Номер места в коробке.
 * # Диапазон: 1..2147483647
 **/
@property(nonatomic, readwrite) int32_t packageInfoPlace;

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

/** Конфигурации шифрования ключа */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISRFIDREGISTRYV1Record_AesKeyConfiguration*> *aesKeyConfigurationsArray;
/** The number of items in @c aesKeyConfigurationsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger aesKeyConfigurationsArray_Count;

/**
 * Контрольные суммы.
 * Нужны для ключей SL1 и SL3
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISRFIDREGISTRYV1Record_Trailer*> *trailersArray;
/** The number of items in @c trailersArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger trailersArray_Count;

/**
 * Номер заказа.
 * # Диапазон: 0..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *orderNumber;

/**
 * Дата заказа.
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *orderAt;
/** Test to see if @c orderAt has been set. */
@property(nonatomic, readwrite) BOOL hasOrderAt;

/**
 * Владелец привязанного ключа.
 * Заполняется сервером, значение берётся из токена при использовании ключа.
 * # Диапазон: 0..255
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *inUseResourceOwnerId;
/** Test to see if @c inUseResourceOwnerId has been set. */
@property(nonatomic, readwrite) BOOL hasInUseResourceOwnerId;

/** Признак, удалена ли запись */
@property(nonatomic, readwrite) BOOL isDeleted;

/**
 * Дата удаления.
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *deletedAt;
/** Test to see if @c deletedAt has been set. */
@property(nonatomic, readwrite) BOOL hasDeletedAt;

/**
 * Производитель.
 * # Диапазон: 3..100
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *vendorName;
/** Test to see if @c vendorName has been set. */
@property(nonatomic, readwrite) BOOL hasVendorName;

/** Метод идентификации */
@property(nonatomic, readwrite) KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType identificationMethodType;

@end

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

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

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

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

#pragma mark - KEYAPISRFIDREGISTRYV1Record_DataCell

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_DataCell_FieldNumber) {
  KEYAPISRFIDREGISTRYV1Record_DataCell_FieldNumber_Section = 1,
  KEYAPISRFIDREGISTRYV1Record_DataCell_FieldNumber_Block = 2,
  KEYAPISRFIDREGISTRYV1Record_DataCell_FieldNumber_Data_p = 3,
};

/**
 * Содержимое ячейки ключа
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_DataCell : GPBMessage

/**
 * Сектор.
 * # Диапазон: 0..127
 **/
@property(nonatomic, readwrite) int32_t section;

/**
 * Блок.
 * # Диапазон: 0..127
 **/
@property(nonatomic, readwrite) int32_t block;

/**
 * Данные.
 * # Паттерн: /^[A-Za-z0-9=]+$/
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *data_p;

@end

#pragma mark - KEYAPISRFIDREGISTRYV1Record_AesKeyConfiguration

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_AesKeyConfiguration_FieldNumber) {
  KEYAPISRFIDREGISTRYV1Record_AesKeyConfiguration_FieldNumber_Address = 1,
  KEYAPISRFIDREGISTRYV1Record_AesKeyConfiguration_FieldNumber_Data_p = 2,
};

/**
 * Конфигурация шифрования ключа
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_AesKeyConfiguration : GPBMessage

/**
 * Адрес.
 * # Паттерн: /^[A-Za-z0-9=]+$/
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *address;

/**
 * Данные.
 * # Паттерн: /^[A-Za-z0-9=]+$/
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *data_p;

@end

#pragma mark - KEYAPISRFIDREGISTRYV1Record_Trailer

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_Trailer_FieldNumber) {
  KEYAPISRFIDREGISTRYV1Record_Trailer_FieldNumber_Sector = 1,
  KEYAPISRFIDREGISTRYV1Record_Trailer_FieldNumber_KeyA = 2,
  KEYAPISRFIDREGISTRYV1Record_Trailer_FieldNumber_KeyB = 3,
  KEYAPISRFIDREGISTRYV1Record_Trailer_FieldNumber_AccessMask = 4,
};

/**
 * Контрольная сумма
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_Trailer : GPBMessage

/**
 * Сектор.
 * # Диапазон: 0..15
 **/
@property(nonatomic, readwrite) int32_t sector;

/**
 * Ключ А.
 * # Диапазон: 1..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *keyA;

/**
 * Ключ Б.
 * # Диапазон: 1..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *keyB;

/**
 * Маска доступа.
 * # Диапазон: 1..512
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *accessMask;

@end

#pragma mark - KEYAPISRFIDREGISTRYV1Record_SavingError

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_SavingError_FieldNumber) {
  KEYAPISRFIDREGISTRYV1Record_SavingError_FieldNumber_StatusTypeRestricted = 1,
  KEYAPISRFIDREGISTRYV1Record_SavingError_FieldNumber_UidExist = 2,
  KEYAPISRFIDREGISTRYV1Record_SavingError_FieldNumber_OwnedByAnotherUser = 3,
  KEYAPISRFIDREGISTRYV1Record_SavingError_FieldNumber_AlreadyLinked = 4,
  KEYAPISRFIDREGISTRYV1Record_SavingError_FieldNumber_Conflict = 5,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1Record_SavingError_Reason_OneOfCase) {
  KEYAPISRFIDREGISTRYV1Record_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1Record_SavingError_Reason_OneOfCase_StatusTypeRestricted = 1,
  KEYAPISRFIDREGISTRYV1Record_SavingError_Reason_OneOfCase_UidExist = 2,
  KEYAPISRFIDREGISTRYV1Record_SavingError_Reason_OneOfCase_OwnedByAnotherUser = 3,
  KEYAPISRFIDREGISTRYV1Record_SavingError_Reason_OneOfCase_AlreadyLinked = 4,
  KEYAPISRFIDREGISTRYV1Record_SavingError_Reason_OneOfCase_Conflict = 5,
};

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

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

/** Перевод статуса запрещён */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record_SavingError_StatusTypeRestricted *statusTypeRestricted;

/** Запись уже существует */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record_SavingError_UidExist *uidExist;

/** Вы не владелец */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record_SavingError_OwnedByAnotherUser *ownedByAnotherUser;

/** Ключ уже использован */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record_SavingError_AlreadyLinked *alreadyLinked;

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1Record_SavingError_StatusTypeRestricted

/**
 * Причины:
 * - Недопустимый перевод статуса.
 * - Не переданы обязательные поля https://openapi-key.deploy.rtkit.dev/keyapis_rfidregistry_v1/#таблица-обязательности-передачи-полей-в-request
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_SavingError_StatusTypeRestricted : GPBMessage

@end

#pragma mark - KEYAPISRFIDREGISTRYV1Record_SavingError_UidExist

/**
 * Причины:
 * - Ключ уже существует
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_SavingError_UidExist : GPBMessage

@end

#pragma mark - KEYAPISRFIDREGISTRYV1Record_SavingError_OwnedByAnotherUser

/**
 * Причины:
 * - Запись принадлежит другому пользователю
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_SavingError_OwnedByAnotherUser : GPBMessage

@end

#pragma mark - KEYAPISRFIDREGISTRYV1Record_SavingError_AlreadyLinked

/**
 * Причины:
 * - Такой ключ уже привязан к другой записи
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_SavingError_AlreadyLinked : GPBMessage

@end

#pragma mark - KEYAPISRFIDREGISTRYV1Record_SavingError_Conflict

/**
 * Причины:
 * - В базе хранится более новая версия записи, значения changed_at отличаются
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1Record_SavingError_Conflict : GPBMessage

@end

#pragma mark - KEYAPISRFIDREGISTRYV1RecordFilter

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber) {
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_RfidTypesArray = 1,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_EncryptionTypesArray = 2,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_UidsArray = 3,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_StatusTypesArray = 4,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_InUseRfidIdsArray = 5,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_ResourceOwnerIdsArray = 6,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_OrderNumbersArray = 7,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_InUseResourceOwnerIdsArray = 8,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_IsDeleted = 9,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_Text = 10,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_StartShippedAt = 11,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_EndShippedAt = 12,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_PackageInfoBoxesArray = 13,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_PackageInfoPlacesArray = 14,
  KEYAPISRFIDREGISTRYV1RecordFilter_FieldNumber_IdentificationMethodTypesArray = 15,
};

/**
 * Фильтр записей
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1RecordFilter : GPBMessage

/** По типам ключей */
// |rfidTypesArray| contains |KEYAPISRFIDREGISTRYV1Record_RfidType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *rfidTypesArray;
/** The number of items in @c rfidTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger rfidTypesArray_Count;

/** По типам шифрования */
// |encryptionTypesArray| contains |KEYAPISRFIDREGISTRYV1Record_EncryptionType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *encryptionTypesArray;
/** The number of items in @c encryptionTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger encryptionTypesArray_Count;

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

/** По типам статуса */
// |statusTypesArray| contains |KEYAPISRFIDREGISTRYV1Record_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) NSMutableArray<NSString*> *inUseRfidIdsArray;
/** The number of items in @c inUseRfidIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger inUseRfidIdsArray_Count;

/** По владельцам */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *resourceOwnerIdsArray;
/** The number of items in @c resourceOwnerIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger resourceOwnerIdsArray_Count;

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

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

/**
 * По удалённым записям.
 * По умолчанию: false
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isDeleted;
/** Test to see if @c isDeleted has been set. */
@property(nonatomic, readwrite) BOOL hasIsDeleted;

/**
 * По тексту.
 * Если значение не передано то поиск по нему не производится.
 * # Диапазон: 3..64.
 * # Поиск производится по полям:
 * # - Номер заказа;
 * # - Производитель
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *text;
/** Test to see if @c text has been set. */
@property(nonatomic, readwrite) BOOL hasText;

/** Дата отгрузки от */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *startShippedAt;
/** Test to see if @c startShippedAt has been set. */
@property(nonatomic, readwrite) BOOL hasStartShippedAt;

/** Дата отгрузки до */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *endShippedAt;
/** Test to see if @c endShippedAt has been set. */
@property(nonatomic, readwrite) BOOL hasEndShippedAt;

/** По номеру коробки */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *packageInfoBoxesArray;
/** The number of items in @c packageInfoBoxesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger packageInfoBoxesArray_Count;

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

/** По методу идентификации */
// |identificationMethodTypesArray| contains |KEYAPISRFIDREGISTRYV1Record_IdentificationMethodType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *identificationMethodTypesArray;
/** The number of items in @c identificationMethodTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger identificationMethodTypesArray_Count;

@end

#pragma mark - KEYAPISRFIDREGISTRYV1RecordPaging

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1RecordPaging_FieldNumber) {
  KEYAPISRFIDREGISTRYV1RecordPaging_FieldNumber_OrderByType = 1,
  KEYAPISRFIDREGISTRYV1RecordPaging_FieldNumber_DirectionType = 2,
  KEYAPISRFIDREGISTRYV1RecordPaging_FieldNumber_Limit = 3,
  KEYAPISRFIDREGISTRYV1RecordPaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация записей
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1RecordPaging : GPBMessage

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

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

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

#pragma mark - KEYAPISRFIDREGISTRYV1PostRecordRequest

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1PostRecordRequest_FieldNumber) {
  KEYAPISRFIDREGISTRYV1PostRecordRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос сохранения записи
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1PostRecordRequest : GPBMessage

/** Запись */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISRFIDREGISTRYV1PostRecordResponse

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1PostRecordResponse_FieldNumber) {
  KEYAPISRFIDREGISTRYV1PostRecordResponse_FieldNumber_Data_p = 1,
  KEYAPISRFIDREGISTRYV1PostRecordResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1PostRecordResponse_Type_OneOfCase) {
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Запись */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record *data_p;

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1PostRecordResponse_Error

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1PostRecordResponse_Error_FieldNumber) {
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Error_FieldNumber_Validation = 1,
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1PostRecordResponse_Error_Reason_OneOfCase) {
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISRFIDREGISTRYV1PostRecordResponse_Error_Reason_OneOfCase_Saving = 2,
};

/**
 * Ошибка запроса сохранения записи
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1PostRecordResponse_Error : GPBMessage

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

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

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordRequest

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordRequest_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordRequest_FieldNumber_Id_p = 1,
};

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

/**
 * Идентификатор.
 * # Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

@end

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordResponse

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordResponse_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordResponse_Type_OneOfCase) {
  KEYAPISRFIDREGISTRYV1GetRecordResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1GetRecordResponse_Type_OneOfCase_Data_p = 1,
};

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

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

/** Запись */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record *data_p;

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordCountRequest

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordCountRequest_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordCountResponse

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordCountResponse_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_FieldNumber_Data_p = 1,
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Type_OneOfCase) {
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Type_OneOfCase_Error = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Error

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Error_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Error_Reason_OneOfCase) {
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1GetRecordCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

/** Ошибка фильтрации записей */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1ValidationError *validation;

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordListRequest

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordListRequest_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordListRequest_FieldNumber_Filter = 1,
  KEYAPISRFIDREGISTRYV1GetRecordListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordListRequest_Pagination_OneOfCase) {
  KEYAPISRFIDREGISTRYV1GetRecordListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1GetRecordListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordListResponse

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordListResponse_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_FieldNumber_Data_p = 1,
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordListResponse_Type_OneOfCase) {
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Запись */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1Record *data_p;

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1GetRecordListResponse_Error

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordListResponse_Error_FieldNumber) {
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1GetRecordListResponse_Error_Reason_OneOfCase) {
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1GetRecordListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

/** Ошибка фильтрации записей */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISRFIDREGISTRYV1ValidationError *validation;

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1DeleteRecordRequest

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1DeleteRecordRequest_FieldNumber) {
  KEYAPISRFIDREGISTRYV1DeleteRecordRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос удаления записи из реестра.
 * Можно удалить только свои записи
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1DeleteRecordRequest : GPBMessage

/**
 * Идентификатор записи.
 * # Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

@end

#pragma mark - KEYAPISRFIDREGISTRYV1DeleteRecordResponse

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1DeleteRecordResponse_FieldNumber) {
  KEYAPISRFIDREGISTRYV1DeleteRecordResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Type_OneOfCase) {
  KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error_FieldNumber) {
  KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error_Reason_OneOfCase) {
  KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка удаления записи
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1DeleteRecordResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISRFIDREGISTRYV1ValidationError

typedef GPB_ENUM(KEYAPISRFIDREGISTRYV1ValidationError_FieldNumber) {
  KEYAPISRFIDREGISTRYV1ValidationError_FieldNumber_Path = 1,
  KEYAPISRFIDREGISTRYV1ValidationError_FieldNumber_Message = 2,
};

/**
 * Ошибки валидации.
 * Эти проверки выполняются до обращения в базу данных
 **/
GPB_FINAL @interface KEYAPISRFIDREGISTRYV1ValidationError : 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
