// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/access_control/v1/keyapis_access_control_access_point_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 KEYAPISACCESSCONTROLV1AccessPoint;
@class KEYAPISACCESSCONTROLV1AccessPointFilter;
@class KEYAPISACCESSCONTROLV1AccessPointPaging;
@class KEYAPISACCESSCONTROLV1AccessPoint_Camera;
@class KEYAPISACCESSCONTROLV1AccessPoint_SavingError;
@class KEYAPISACCESSCONTROLV1AccessPoint_SavingError_Conflict;
@class KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Error;
@class KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Error;
@class KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Error;
@class KEYAPISACCESSCONTROLV1GetAccessPointResponse_Error;
@class KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error;
@class KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error;
@class KEYAPISACCESSCONTROLV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISACCESSCONTROLV1AccessPoint_DirectionType

/**
 * Тип направления.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPoint_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.
   **/
  KEYAPISACCESSCONTROLV1AccessPoint_DirectionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Не указано */
  KEYAPISACCESSCONTROLV1AccessPoint_DirectionType_DirectionTypeUnknown = 0,

  /** Вход */
  KEYAPISACCESSCONTROLV1AccessPoint_DirectionType_In = 1,

  /** Выход */
  KEYAPISACCESSCONTROLV1AccessPoint_DirectionType_Out = 2,

  /** В обоих направлениях */
  KEYAPISACCESSCONTROLV1AccessPoint_DirectionType_Reverse = 3,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1AccessPoint_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 KEYAPISACCESSCONTROLV1AccessPoint_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType

/**
 * Тип распознавания.
 * Атрибут, определяющий тип данных, который распознает камера.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType) {
  /**
   * 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.
   **/
  KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Не указано */
  KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType_RecognitionTypeUnknown = 0,

  /** По номеру авто */
  KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType_CarNumber = 1,

  /** По типу транспорта */
  KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType_VehicleType = 2,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType_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 KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1AccessPointPaging_OrderByType

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

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

  /** По наименованию */
  KEYAPISACCESSCONTROLV1AccessPointPaging_OrderByType_Title = 2,

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

  /** Дата создания */
  KEYAPISACCESSCONTROLV1AccessPointPaging_OrderByType_CreatedAt = 4,

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

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1AccessPointPaging_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 KEYAPISACCESSCONTROLV1AccessPointPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1AccessPointPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1AccessPointPaging_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 KEYAPISACCESSCONTROLV1AccessPointPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType

/** Тип ТС */
typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType) {
  /**
   * 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.
   **/
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Не указано */
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_VehicleTypeUnknown = 0,

  /** МЧС */
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_Emergency = 1,

  /** Полиция */
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_Police = 2,

  /** Скорая помощь */
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_Ambulance = 3,

  /** Мусоровоз */
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_GarbageTruck = 4,

  /** Такси */
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_Taxi = 5,
};

GPBEnumDescriptor *KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_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 KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType_IsValidValue(int32_t value);

#pragma mark - KEYAPISACCESSCONTROLV1KeyapisAccessControlAccessPointV1Root

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

#pragma mark - KEYAPISACCESSCONTROLV1AccessPoint

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_Id_p = 1,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_Title = 2,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_Description_p = 3,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_DeviceId = 4,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_RelayIndex = 5,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_Delay = 6,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_FlatgrammId = 7,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_DirectionType = 8,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_CamerasArray = 9,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_CreatedAt = 10,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_ChangedAt = 11,
  KEYAPISACCESSCONTROLV1AccessPoint_FieldNumber_DeletedAt = 12,
};

/**
 * Точка доступа.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1AccessPoint : GPBMessage

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

/**
 * Наименование.
 * # Диапазон: 3..40
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/**
 * Описание.
 * # Диапазон: 3..200
 **/
@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;

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

/**
 * Номер реле.
 * # Диапазон: 0..100
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *relayIndex;
/** Test to see if @c relayIndex has been set. */
@property(nonatomic, readwrite) BOOL hasRelayIndex;

/**
 * Время задержки в секундах.
 * # Диапазон: 1..3600
 **/
@property(nonatomic, readwrite) int32_t delay;

/**
 * Идентификатор квартирограммы.
 * # Диапазон: 1..2147483647
 **/
@property(nonatomic, readwrite) int32_t flatgrammId;

/** Тип направления */
@property(nonatomic, readwrite) KEYAPISACCESSCONTROLV1AccessPoint_DirectionType directionType;

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1AccessPoint_Camera

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPoint_Camera_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPoint_Camera_FieldNumber_Uid = 1,
  KEYAPISACCESSCONTROLV1AccessPoint_Camera_FieldNumber_RecognitionTypesArray = 2,
};

/**
 * Камера
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1AccessPoint_Camera : GPBMessage

/** UID камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *uid;

/** Типы распознавания */
// |recognitionTypesArray| contains |KEYAPISACCESSCONTROLV1AccessPoint_Camera_RecognitionType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *recognitionTypesArray;
/** The number of items in @c recognitionTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger recognitionTypesArray_Count;

@end

#pragma mark - KEYAPISACCESSCONTROLV1AccessPoint_SavingError

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPoint_SavingError_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPoint_SavingError_FieldNumber_Conflict = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPoint_SavingError_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1AccessPoint_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1AccessPoint_SavingError_Reason_OneOfCase_Conflict = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1AccessPoint_SavingError_Conflict

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1AccessPointFilter

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPointFilter_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPointFilter_FieldNumber_Text = 1,
  KEYAPISACCESSCONTROLV1AccessPointFilter_FieldNumber_DeviceIdsArray = 2,
  KEYAPISACCESSCONTROLV1AccessPointFilter_FieldNumber_FlatgrammIdsArray = 3,
  KEYAPISACCESSCONTROLV1AccessPointFilter_FieldNumber_DirectionTypesArray = 4,
  KEYAPISACCESSCONTROLV1AccessPointFilter_FieldNumber_GroupIdsArray = 5,
  KEYAPISACCESSCONTROLV1AccessPointFilter_FieldNumber_CameraUidsArray = 6,
};

/**
 * Фильтр по точкам доступа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1AccessPointFilter : GPBMessage

/**
 * По тексту.
 * Если значение не передано то поиск по нему не производится.
 * # Диапазон: 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) 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) GPBInt32Array *flatgrammIdsArray;
/** The number of items in @c flatgrammIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger flatgrammIdsArray_Count;

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

/**
 * По идентификаторам группы.
 * # Тип: Guid
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *groupIdsArray;
/** The number of items in @c groupIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger groupIdsArray_Count;

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1AccessPointPaging

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1AccessPointPaging_FieldNumber) {
  KEYAPISACCESSCONTROLV1AccessPointPaging_FieldNumber_OrderByType = 1,
  KEYAPISACCESSCONTROLV1AccessPointPaging_FieldNumber_DirectionType = 2,
  KEYAPISACCESSCONTROLV1AccessPointPaging_FieldNumber_Limit = 3,
  KEYAPISACCESSCONTROLV1AccessPointPaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISACCESSCONTROLV1PostAccessPointRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostAccessPointRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос на создание/изменение точки доступа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PostAccessPointRequest : GPBMessage

/** Точка доступа */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1AccessPoint *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISACCESSCONTROLV1PostAccessPointResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Точка доступа */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1AccessPoint *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error_FieldNumber_Validation = 1,
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error_Reason_OneOfCase_Saving = 2,
};

/**
 * Ошибка запроса сохранения точки доступа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PostAccessPointResponse_Error : GPBMessage

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointListRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointListRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointListRequest_FieldNumber_Filter = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointListRequest_Pagination_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointListResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointListResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на получение списка точек доступа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1GetAccessPointListResponse : GPBMessage

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

/** Точка доступа */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1AccessPoint *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Точка доступа */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISACCESSCONTROLV1AccessPoint *data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointCountRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointCountRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointCountResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_FieldNumber_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Всего точек доступа */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1GetAccessPointCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1DeleteAccessPointRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteAccessPointRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1DeleteAccessPointRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISACCESSCONTROLV1DeleteAccessPointResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1DeleteAccessPointResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_FieldNumber_AccessPointId = 1,
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_FieldNumber_CarNumber = 2,
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_FieldNumber_VehicleType = 3,
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_FieldNumber_CourierCompanyName = 4,
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_FieldNumber_OrderNumber = 5,
  KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_FieldNumber_CourierId = 6,
};

/**
 * Запрос открытия точки доступа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest : GPBMessage

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

/**
 * ГРЗ авто.
 * # Диапазон: 3..20
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *carNumber;
/** Test to see if @c carNumber has been set. */
@property(nonatomic, readwrite) BOOL hasCarNumber;

/** Тип ТС */
@property(nonatomic, readwrite) KEYAPISACCESSCONTROLV1PostAccessPointOpenRequest_VehicleType vehicleType;

/**
 * Наименование курьерской компании.
 * # Диапазон: 3..150
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *courierCompanyName;
/** Test to see if @c courierCompanyName has been set. */
@property(nonatomic, readwrite) BOOL hasCourierCompanyName;

/**
 * Номер заказа.
 * # Диапазон: 3..64
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *orderNumber;
/** Test to see if @c orderNumber has been set. */
@property(nonatomic, readwrite) BOOL hasOrderNumber;

/**
 * Идентификатор курьера.
 * # Диапазон: 3..64
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *courierId;
/** Test to see if @c courierId has been set. */
@property(nonatomic, readwrite) BOOL hasCourierId;

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Type_OneOfCase) {
  KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error_FieldNumber) {
  KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error_Reason_OneOfCase) {
  KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса открытия точки доступа
 **/
GPB_FINAL @interface KEYAPISACCESSCONTROLV1PostAccessPointOpenResponse_Error : GPBMessage

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

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

@end

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

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
