// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/vc/v1/keyapis_vc_camera_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 KEYAPISVCV1Camera;
@class KEYAPISVCV1CameraFilter;
@class KEYAPISVCV1CameraPaging;
@class KEYAPISVCV1CameraRoom;
@class KEYAPISVCV1CameraRoomFilter;
@class KEYAPISVCV1CameraRoomPaging;
@class KEYAPISVCV1CameraScope;
@class KEYAPISVCV1Camera_ValidationError;
@class KEYAPISVCV1Camera_ValidationError_OneFieldMacOrSerialNumberRequired;
@class KEYAPISVCV1Camera_ValidationError_RtspUrlRequired;
@class KEYAPISVCV1DeleteCameraResponse_Error;
@class KEYAPISVCV1GetCameraCalendarResponse_Caledar;
@class KEYAPISVCV1GetCameraCalendarResponse_Error;
@class KEYAPISVCV1GetCameraCalendarResponse_Error_VcError;
@class KEYAPISVCV1GetCameraIntervalsResponse_Error;
@class KEYAPISVCV1GetCameraIntervalsResponse_Error_VcError;
@class KEYAPISVCV1GetCameraIntervalsResponse_Interval;
@class KEYAPISVCV1GetCameraIntervalsResponse_Interval_Item;
@class KEYAPISVCV1GetCameraListResponse_Data;
@class KEYAPISVCV1GetCameraListResponse_Error;
@class KEYAPISVCV1GetCameraResponse_Error;
@class KEYAPISVCV1GetCameraRoomCountResponse_Error;
@class KEYAPISVCV1GetCameraRoomListResponse_Error;
@class KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_CameraRtspUrl;
@class KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Error;
@class KEYAPISVCV1PostCameraResponse_Error;
@class KEYAPISVCV1PostCameraResponse_Error_VcError;
@class KEYAPISVCV1PutCameraRoomAttachListResponse_Error;
@class KEYAPISVCV1PutCameraRoomAttachResponse_Error;
@class KEYAPISVCV1PutCameraRoomDetachListResponse_Error;
@class KEYAPISVCV1PutCameraRoomDetachResponse_Error;
@class KEYAPISVCV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISVCV1CameraRoomPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISVCV1CameraRoomPaging_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 KEYAPISVCV1CameraRoomPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISVCV1CameraRoomPaging_OrderByType

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

  /** По Идентификатору камеры */
  KEYAPISVCV1CameraRoomPaging_OrderByType_CameraUid = 1,

  /** По ОРПОН и номеру квартиры */
  KEYAPISVCV1CameraRoomPaging_OrderByType_OrponRoomNumber = 2,
};

GPBEnumDescriptor *KEYAPISVCV1CameraRoomPaging_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 KEYAPISVCV1CameraRoomPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISVCV1Camera_Type

/** Справочник типов камер */
typedef GPB_ENUM(KEYAPISVCV1Camera_Type) {
  /**
   * Value used if any message's field encounters a value that is not defined
   * by this enum. The message will also have C functions to get/set the rawValue
   * of the field.
   **/
  KEYAPISVCV1Camera_Type_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISVCV1Camera_Type_TypeUnknown = 0,

  /** Регистратор */
  KEYAPISVCV1Camera_Type_Dvr = 1,

  /** Система управления видео */
  KEYAPISVCV1Camera_Type_Vms = 2,

  /** RTSP-камера */
  KEYAPISVCV1Camera_Type_Rose = 3,

  /** IP-камера */
  KEYAPISVCV1Camera_Type_Violet = 4,
};

GPBEnumDescriptor *KEYAPISVCV1Camera_Type_EnumDescriptor(void);

/**
 * Checks to see if the given value is defined by the enum or was not known at
 * the time this source was generated.
 **/
BOOL KEYAPISVCV1Camera_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISVCV1CameraPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISVCV1CameraPaging_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 KEYAPISVCV1CameraPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISVCV1CameraPaging_OrderByType

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

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

GPBEnumDescriptor *KEYAPISVCV1CameraPaging_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 KEYAPISVCV1CameraPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - KEYAPISVCV1KeyapisVcCameraV1Root

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

#pragma mark - KEYAPISVCV1CameraRoom

typedef GPB_ENUM(KEYAPISVCV1CameraRoom_FieldNumber) {
  KEYAPISVCV1CameraRoom_FieldNumber_CameraUid = 1,
  KEYAPISVCV1CameraRoom_FieldNumber_Orpon = 2,
  KEYAPISVCV1CameraRoom_FieldNumber_RoomNumber = 3,
};

/**
 * Связь камеры и квартиры
 **/
GPB_FINAL @interface KEYAPISVCV1CameraRoom : GPBMessage

/** Идентификатор камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *cameraUid;

/** ОРПОН дома */
@property(nonatomic, readwrite) int64_t orpon;

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

@end

#pragma mark - KEYAPISVCV1CameraRoomFilter

typedef GPB_ENUM(KEYAPISVCV1CameraRoomFilter_FieldNumber) {
  KEYAPISVCV1CameraRoomFilter_FieldNumber_CameraUidsArray = 1,
  KEYAPISVCV1CameraRoomFilter_FieldNumber_OrponsArray = 2,
  KEYAPISVCV1CameraRoomFilter_FieldNumber_RoomNumbersArray = 3,
};

/**
 * Фильтр связок камеры и квартиры.
 * При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.
 * При передаче нескольких разных параметров фильтра они работают в выборке через И
 **/
GPB_FINAL @interface KEYAPISVCV1CameraRoomFilter : GPBMessage

/**
 * По Идентификаторам камер.
 * # Диапазон: 0..100
 **/
@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;

/**
 * По ОРПОНам.
 * # Диапазон: 0..100
 **/
@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;

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

@end

#pragma mark - KEYAPISVCV1CameraRoomPaging

typedef GPB_ENUM(KEYAPISVCV1CameraRoomPaging_FieldNumber) {
  KEYAPISVCV1CameraRoomPaging_FieldNumber_OrderByType = 1,
  KEYAPISVCV1CameraRoomPaging_FieldNumber_DirectionType = 2,
  KEYAPISVCV1CameraRoomPaging_FieldNumber_Limit = 3,
  KEYAPISVCV1CameraRoomPaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISVCV1Camera

typedef GPB_ENUM(KEYAPISVCV1Camera_FieldNumber) {
  KEYAPISVCV1Camera_FieldNumber_Id_p = 1,
  KEYAPISVCV1Camera_FieldNumber_Uid = 2,
  KEYAPISVCV1Camera_FieldNumber_Name = 3,
  KEYAPISVCV1Camera_FieldNumber_IsOnline = 4,
  KEYAPISVCV1Camera_FieldNumber_IsActiveUserCamera = 5,
  KEYAPISVCV1Camera_FieldNumber_StatusChangedAt = 6,
  KEYAPISVCV1Camera_FieldNumber_Mac = 7,
  KEYAPISVCV1Camera_FieldNumber_Ip = 8,
  KEYAPISVCV1Camera_FieldNumber_RemoteIp = 9,
  KEYAPISVCV1Camera_FieldNumber_TariffStartedAt = 10,
  KEYAPISVCV1Camera_FieldNumber_TariffEndedAt = 11,
  KEYAPISVCV1Camera_FieldNumber_TariffTitle = 12,
  KEYAPISVCV1Camera_FieldNumber_Type = 13,
  KEYAPISVCV1Camera_FieldNumber_CameraCategoryId = 14,
  KEYAPISVCV1Camera_FieldNumber_RtspURL = 15,
  KEYAPISVCV1Camera_FieldNumber_SerialNumber = 16,
  KEYAPISVCV1Camera_FieldNumber_CompanyId = 17,
};

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

/** Идентификатор камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *id_p;

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

/** Название камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *name;

/** Признак: онлайн камера или нет */
@property(nonatomic, readwrite) BOOL isOnline;

/** Признак: Есть ли у камеры активный пользователь */
@property(nonatomic, readwrite) BOOL isActiveUserCamera;

/** Дата и время изменения статуса камеры */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *statusChangedAt;
/** Test to see if @c statusChangedAt has been set. */
@property(nonatomic, readwrite) BOOL hasStatusChangedAt;

/** MAC-адрес камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *mac;

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

/** Внешний IP камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *remoteIp;

/** Дата начала действия текущего тарифа */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *tariffStartedAt;
/** Test to see if @c tariffStartedAt has been set. */
@property(nonatomic, readwrite) BOOL hasTariffStartedAt;

/** Дата окончания действия текущего тарифа */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *tariffEndedAt;
/** Test to see if @c tariffEndedAt has been set. */
@property(nonatomic, readwrite) BOOL hasTariffEndedAt;

/** Наименование тарифа */
@property(nonatomic, readwrite, copy, null_resettable) NSString *tariffTitle;

/** Тип камеры */
@property(nonatomic, readwrite) KEYAPISVCV1Camera_Type type;

/**
 * Идентификатор категории.
 * Камера - 1, домофон - 2, скуд - 3, шлагбаум - 4
 **/
@property(nonatomic, readwrite) int32_t cameraCategoryId;

/** РТСП-ссылка */
@property(nonatomic, readwrite, copy, null_resettable) NSString *rtspURL;

/** Серийный номер */
@property(nonatomic, readwrite, copy, null_resettable) NSString *serialNumber;

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

@end

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

#pragma mark - KEYAPISVCV1Camera_ValidationError

typedef GPB_ENUM(KEYAPISVCV1Camera_ValidationError_FieldNumber) {
  KEYAPISVCV1Camera_ValidationError_FieldNumber_RtspURLRequired = 1,
  KEYAPISVCV1Camera_ValidationError_FieldNumber_OneFieldMacOrSerialNumberRequired = 2,
};

typedef GPB_ENUM(KEYAPISVCV1Camera_ValidationError_Reason_OneOfCase) {
  KEYAPISVCV1Camera_ValidationError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1Camera_ValidationError_Reason_OneOfCase_RtspURLRequired = 1,
  KEYAPISVCV1Camera_ValidationError_Reason_OneOfCase_OneFieldMacOrSerialNumberRequired = 2,
};

/**
 * Ошибки валидации
 **/
GPB_FINAL @interface KEYAPISVCV1Camera_ValidationError : GPBMessage

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

/** Поле rtsp_url должно быть заполнено */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1Camera_ValidationError_RtspUrlRequired *rtspURLRequired;

/** Только одно поле обязательно к заполнению mac или serial_number */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1Camera_ValidationError_OneFieldMacOrSerialNumberRequired *oneFieldMacOrSerialNumberRequired;

@end

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

#pragma mark - KEYAPISVCV1Camera_ValidationError_RtspUrlRequired

/**
 * Поле rtsp_url должно быть заполнено.
 * Только для камер с типом ROSE
 **/
GPB_FINAL @interface KEYAPISVCV1Camera_ValidationError_RtspUrlRequired : GPBMessage

@end

#pragma mark - KEYAPISVCV1Camera_ValidationError_OneFieldMacOrSerialNumberRequired

/**
 * Только одно поле обязательно к заполнению mac или serial_number.
 * Для камер с типом VIOLET и DVR
 **/
GPB_FINAL @interface KEYAPISVCV1Camera_ValidationError_OneFieldMacOrSerialNumberRequired : GPBMessage

@end

#pragma mark - KEYAPISVCV1CameraFilter

typedef GPB_ENUM(KEYAPISVCV1CameraFilter_FieldNumber) {
  KEYAPISVCV1CameraFilter_FieldNumber_IsActive = 1,
  KEYAPISVCV1CameraFilter_FieldNumber_IsChannelAlive = 2,
  KEYAPISVCV1CameraFilter_FieldNumber_IsOnline = 3,
  KEYAPISVCV1CameraFilter_FieldNumber_CameraType = 4,
};

/**
 * Фильтр камер
 **/
GPB_FINAL @interface KEYAPISVCV1CameraFilter : GPBMessage

/** Признак активности камеры */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isActive;
/** Test to see if @c isActive has been set. */
@property(nonatomic, readwrite) BOOL hasIsActive;

/** Признак активности канала */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isChannelAlive;
/** Test to see if @c isChannelAlive has been set. */
@property(nonatomic, readwrite) BOOL hasIsChannelAlive;

/** Статус камеры */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isOnline;
/** Test to see if @c isOnline has been set. */
@property(nonatomic, readwrite) BOOL hasIsOnline;

/** Тип камеры */
@property(nonatomic, readwrite) KEYAPISVCV1Camera_Type cameraType;

@end

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

#pragma mark - KEYAPISVCV1CameraPaging

typedef GPB_ENUM(KEYAPISVCV1CameraPaging_FieldNumber) {
  KEYAPISVCV1CameraPaging_FieldNumber_OrderByType = 1,
  KEYAPISVCV1CameraPaging_FieldNumber_DirectionType = 2,
  KEYAPISVCV1CameraPaging_FieldNumber_Limit = 3,
  KEYAPISVCV1CameraPaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISVCV1CameraScope

typedef GPB_ENUM(KEYAPISVCV1CameraScope_FieldNumber) {
  KEYAPISVCV1CameraScope_FieldNumber_VcCompanyId = 1,
};

/**
 * Ограничение выборки камер
 **/
GPB_FINAL @interface KEYAPISVCV1CameraScope : GPBMessage

/** Внешний идентификатор компании */
@property(nonatomic, readwrite) int32_t vcCompanyId;

@end

#pragma mark - KEYAPISVCV1GetCameraListRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraListRequest_FieldNumber) {
  KEYAPISVCV1GetCameraListRequest_FieldNumber_Scope = 1,
  KEYAPISVCV1GetCameraListRequest_FieldNumber_Filter = 2,
  KEYAPISVCV1GetCameraListRequest_FieldNumber_Paging = 3,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraListRequest_Pagination_OneOfCase) {
  KEYAPISVCV1GetCameraListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraListRequest_Pagination_OneOfCase_Paging = 3,
};

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

/** Ограничение выборки */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraScope *scope;
/** Test to see if @c scope has been set. */
@property(nonatomic, readwrite) BOOL hasScope;

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraListResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraListResponse_FieldNumber) {
  KEYAPISVCV1GetCameraListResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraListResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Список */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1GetCameraListResponse_Data *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraListResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraListResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraListResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraListResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraListResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraListResponse_Data

typedef GPB_ENUM(KEYAPISVCV1GetCameraListResponse_Data_FieldNumber) {
  KEYAPISVCV1GetCameraListResponse_Data_FieldNumber_ItemsArray = 1,
  KEYAPISVCV1GetCameraListResponse_Data_FieldNumber_Total = 2,
};

/**
 * Список
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraListResponse_Data : GPBMessage

/** Список Camera */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISVCV1Camera*> *itemsArray;
/** The number of items in @c itemsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger itemsArray_Count;

/** Всего количество */
@property(nonatomic, readwrite) int32_t total;

@end

#pragma mark - KEYAPISVCV1GetCameraRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraRequest_FieldNumber) {
  KEYAPISVCV1GetCameraRequest_FieldNumber_Scope = 1,
  KEYAPISVCV1GetCameraRequest_FieldNumber_Uid = 2,
};

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

/** Ограничение выборки */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraScope *scope;
/** Test to see if @c scope has been set. */
@property(nonatomic, readwrite) BOOL hasScope;

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

@end

#pragma mark - KEYAPISVCV1GetCameraResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraResponse_FieldNumber) {
  KEYAPISVCV1GetCameraResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Камера */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1Camera *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraRtspUrlExternalIdRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraRtspUrlExternalIdRequest_FieldNumber) {
  KEYAPISVCV1GetCameraRtspUrlExternalIdRequest_FieldNumber_ExternalId = 1,
};

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

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

@end

#pragma mark - KEYAPISVCV1GetCameraRtspUrlExternalIdResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_FieldNumber) {
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения RTSP-ссылки по идентификатору камеры в vcfront
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraRtspUrlExternalIdResponse : GPBMessage

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

/** RTSP-ссылка */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_CameraRtspUrl *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_CameraRtspUrl

typedef GPB_ENUM(KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_CameraRtspUrl_FieldNumber) {
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_CameraRtspUrl_FieldNumber_RtspURL = 1,
};

/**
 * RTSP-ссылка
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_CameraRtspUrl : GPBMessage

/** RTSP-ссылка */
@property(nonatomic, readwrite, copy, null_resettable) NSString *rtspURL;

@end

#pragma mark - KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraRtspUrlExternalIdResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomAttachRequest

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachRequest_FieldNumber) {
  KEYAPISVCV1PutCameraRoomAttachRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос привязки камеры и квартиры
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomAttachRequest : GPBMessage

/** Связь Camera и Room */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraRoom *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISVCV1PutCameraRoomAttachResponse

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachResponse_FieldNumber) {
  KEYAPISVCV1PutCameraRoomAttachResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachResponse_Type_OneOfCase) {
  KEYAPISVCV1PutCameraRoomAttachResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomAttachResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ привязки камеры и квартиры
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomAttachResponse : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomAttachResponse_Error

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachResponse_Error_FieldNumber) {
  KEYAPISVCV1PutCameraRoomAttachResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1PutCameraRoomAttachResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomAttachResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomAttachResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomAttachListRequest

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachListRequest_FieldNumber) {
  KEYAPISVCV1PutCameraRoomAttachListRequest_FieldNumber_DataArray = 1,
};

/**
 * Запрос пакетной привязки камер и квартир
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomAttachListRequest : GPBMessage

/** Массив связей Camera и Room */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISVCV1CameraRoom*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - KEYAPISVCV1PutCameraRoomAttachListResponse

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachListResponse_FieldNumber) {
  KEYAPISVCV1PutCameraRoomAttachListResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachListResponse_Type_OneOfCase) {
  KEYAPISVCV1PutCameraRoomAttachListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomAttachListResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос пакетной привязки камер и квартир
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomAttachListResponse : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomAttachListResponse_Error

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachListResponse_Error_FieldNumber) {
  KEYAPISVCV1PutCameraRoomAttachListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomAttachListResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1PutCameraRoomAttachListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomAttachListResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomAttachListResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomDetachRequest

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachRequest_FieldNumber) {
  KEYAPISVCV1PutCameraRoomDetachRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос отвязки камеры и квартиры
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomDetachRequest : GPBMessage

/** Связь Camera и Room */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraRoom *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISVCV1PutCameraRoomDetachResponse

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachResponse_FieldNumber) {
  KEYAPISVCV1PutCameraRoomDetachResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachResponse_Type_OneOfCase) {
  KEYAPISVCV1PutCameraRoomDetachResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomDetachResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ отвязки камеры и квартиры
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomDetachResponse : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomDetachResponse_Error

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachResponse_Error_FieldNumber) {
  KEYAPISVCV1PutCameraRoomDetachResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1PutCameraRoomDetachResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomDetachResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomDetachResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomDetachListRequest

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachListRequest_FieldNumber) {
  KEYAPISVCV1PutCameraRoomDetachListRequest_FieldNumber_DataArray = 1,
};

/**
 * Запрос пакетной отвязки камер и квартир
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomDetachListRequest : GPBMessage

/** Массив связей Camera и Room */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISVCV1CameraRoom*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - KEYAPISVCV1PutCameraRoomDetachListResponse

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachListResponse_FieldNumber) {
  KEYAPISVCV1PutCameraRoomDetachListResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachListResponse_Type_OneOfCase) {
  KEYAPISVCV1PutCameraRoomDetachListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomDetachListResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос пакетной отвязки камер и квартир
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomDetachListResponse : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PutCameraRoomDetachListResponse_Error

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachListResponse_Error_FieldNumber) {
  KEYAPISVCV1PutCameraRoomDetachListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PutCameraRoomDetachListResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1PutCameraRoomDetachListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PutCameraRoomDetachListResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1PutCameraRoomDetachListResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraRoomCountRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomCountRequest_FieldNumber) {
  KEYAPISVCV1GetCameraRoomCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISVCV1GetCameraRoomCountResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomCountResponse_FieldNumber) {
  KEYAPISVCV1GetCameraRoomCountResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraRoomCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomCountResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraRoomCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraRoomCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraRoomCountResponse_Type_OneOfCase_Error = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraRoomCountResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomCountResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraRoomCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomCountResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraRoomCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraRoomCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraRoomCountResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraRoomListRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomListRequest_FieldNumber) {
  KEYAPISVCV1GetCameraRoomListRequest_FieldNumber_Filter = 1,
  KEYAPISVCV1GetCameraRoomListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomListRequest_Pagination_OneOfCase) {
  KEYAPISVCV1GetCameraRoomListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraRoomListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraRoomListResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomListResponse_FieldNumber) {
  KEYAPISVCV1GetCameraRoomListResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraRoomListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomListResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraRoomListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraRoomListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraRoomListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Связь камеры и квартиры */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraRoom *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraRoomListResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomListResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraRoomListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraRoomListResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraRoomListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraRoomListResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraRoomListResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1DeleteCameraRequest

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraRequest_FieldNumber) {
  KEYAPISVCV1DeleteCameraRequest_FieldNumber_Uid = 1,
  KEYAPISVCV1DeleteCameraRequest_FieldNumber_IsDeletePermanently = 2,
};

/**
 * Запрос удаления камеры
 **/
GPB_FINAL @interface KEYAPISVCV1DeleteCameraRequest : GPBMessage

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

/** Флаг полного (безвозвратного) удаления камеры */
@property(nonatomic, readwrite) BOOL isDeletePermanently;

@end

#pragma mark - KEYAPISVCV1DeleteCameraResponse

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraResponse_FieldNumber) {
  KEYAPISVCV1DeleteCameraResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraResponse_Type_OneOfCase) {
  KEYAPISVCV1DeleteCameraResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1DeleteCameraResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1DeleteCameraResponse_Error

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraResponse_Error_FieldNumber) {
  KEYAPISVCV1DeleteCameraResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1DeleteCameraResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1DeleteCameraResponse_Error_Reason_OneOfCase_Validation = 1,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1DeleteCameraResponse_Error : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISVCV1PostCameraRequest

typedef GPB_ENUM(KEYAPISVCV1PostCameraRequest_FieldNumber) {
  KEYAPISVCV1PostCameraRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос создания камеры
 **/
GPB_FINAL @interface KEYAPISVCV1PostCameraRequest : GPBMessage

/** Камера */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1Camera *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISVCV1PostCameraResponse

typedef GPB_ENUM(KEYAPISVCV1PostCameraResponse_FieldNumber) {
  KEYAPISVCV1PostCameraResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PostCameraResponse_Type_OneOfCase) {
  KEYAPISVCV1PostCameraResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PostCameraResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1PostCameraResponse_Error

typedef GPB_ENUM(KEYAPISVCV1PostCameraResponse_Error_FieldNumber) {
  KEYAPISVCV1PostCameraResponse_Error_FieldNumber_Validation = 1,
  KEYAPISVCV1PostCameraResponse_Error_FieldNumber_CameraValidation = 2,
  KEYAPISVCV1PostCameraResponse_Error_FieldNumber_Vc = 3,
};

typedef GPB_ENUM(KEYAPISVCV1PostCameraResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1PostCameraResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PostCameraResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISVCV1PostCameraResponse_Error_Reason_OneOfCase_CameraValidation = 2,
  KEYAPISVCV1PostCameraResponse_Error_Reason_OneOfCase_Vc = 3,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1PostCameraResponse_Error : GPBMessage

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

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

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

/** Ошибка в сервисе ВН */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1PostCameraResponse_Error_VcError *vc;

@end

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

#pragma mark - KEYAPISVCV1PostCameraResponse_Error_VcError

typedef GPB_ENUM(KEYAPISVCV1PostCameraResponse_Error_VcError_FieldNumber) {
  KEYAPISVCV1PostCameraResponse_Error_VcError_FieldNumber_Text = 1,
};

/**
 * Ошибка в сервисе ВН
 **/
GPB_FINAL @interface KEYAPISVCV1PostCameraResponse_Error_VcError : GPBMessage

/** Текст ошибки */
@property(nonatomic, readwrite, copy, null_resettable) NSString *text;

@end

#pragma mark - KEYAPISVCV1GetCameraCalendarRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraCalendarRequest_FieldNumber) {
  KEYAPISVCV1GetCameraCalendarRequest_FieldNumber_Uid = 1,
  KEYAPISVCV1GetCameraCalendarRequest_FieldNumber_Offset = 2,
};

/**
 * Запрос получения дней, когда доступны записи
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraCalendarRequest : GPBMessage

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

/** Смещение от UTC в минутах */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *offset;
/** Test to see if @c offset has been set. */
@property(nonatomic, readwrite) BOOL hasOffset;

@end

#pragma mark - KEYAPISVCV1GetCameraCalendarResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraCalendarResponse_FieldNumber) {
  KEYAPISVCV1GetCameraCalendarResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraCalendarResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCalendarResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraCalendarResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCalendarResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraCalendarResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Дни с записями */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1GetCameraCalendarResponse_Caledar *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraCalendarResponse_Caledar

typedef GPB_ENUM(KEYAPISVCV1GetCameraCalendarResponse_Caledar_FieldNumber) {
  KEYAPISVCV1GetCameraCalendarResponse_Caledar_FieldNumber_ItemsArray = 1,
};

/**
 * Дни с записями
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraCalendarResponse_Caledar : GPBMessage

/** День с записью */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *itemsArray;
/** The number of items in @c itemsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger itemsArray_Count;

@end

#pragma mark - KEYAPISVCV1GetCameraCalendarResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraCalendarResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraCalendarResponse_Error_FieldNumber_Validation = 1,
  KEYAPISVCV1GetCameraCalendarResponse_Error_FieldNumber_Vc = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCalendarResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraCalendarResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCalendarResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISVCV1GetCameraCalendarResponse_Error_Reason_OneOfCase_Vc = 2,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraCalendarResponse_Error : GPBMessage

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

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

/** Ошибка в сервисе ВН */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1GetCameraCalendarResponse_Error_VcError *vc;

@end

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

#pragma mark - KEYAPISVCV1GetCameraCalendarResponse_Error_VcError

typedef GPB_ENUM(KEYAPISVCV1GetCameraCalendarResponse_Error_VcError_FieldNumber) {
  KEYAPISVCV1GetCameraCalendarResponse_Error_VcError_FieldNumber_Text = 1,
};

/**
 * Ошибка в сервисе ВН
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraCalendarResponse_Error_VcError : GPBMessage

/** Текст ошибки */
@property(nonatomic, readwrite, copy, null_resettable) NSString *text;

@end

#pragma mark - KEYAPISVCV1GetCameraIntervalsRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsRequest_FieldNumber) {
  KEYAPISVCV1GetCameraIntervalsRequest_FieldNumber_Uid = 1,
  KEYAPISVCV1GetCameraIntervalsRequest_FieldNumber_Offset = 2,
};

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

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

/** Смещение от UTC в минутах */
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Value *offset;
/** Test to see if @c offset has been set. */
@property(nonatomic, readwrite) BOOL hasOffset;

@end

#pragma mark - KEYAPISVCV1GetCameraIntervalsResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsResponse_FieldNumber) {
  KEYAPISVCV1GetCameraIntervalsResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraIntervalsResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraIntervalsResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraIntervalsResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraIntervalsResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Интервалы */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1GetCameraIntervalsResponse_Interval *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraIntervalsResponse_Interval

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsResponse_Interval_FieldNumber) {
  KEYAPISVCV1GetCameraIntervalsResponse_Interval_FieldNumber_ItemsArray = 1,
};

/**
 * Интервалы
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraIntervalsResponse_Interval : GPBMessage

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

@end

#pragma mark - KEYAPISVCV1GetCameraIntervalsResponse_Interval_Item

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsResponse_Interval_Item_FieldNumber) {
  KEYAPISVCV1GetCameraIntervalsResponse_Interval_Item_FieldNumber_SinceAt = 1,
  KEYAPISVCV1GetCameraIntervalsResponse_Interval_Item_FieldNumber_TillAt = 2,
};

/**
 * Интервал
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraIntervalsResponse_Interval_Item : GPBMessage

/**
 * Значение интервала с.
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *sinceAt;
/** Test to see if @c sinceAt has been set. */
@property(nonatomic, readwrite) BOOL hasSinceAt;

/**
 * Значение интервала до.
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *tillAt;
/** Test to see if @c tillAt has been set. */
@property(nonatomic, readwrite) BOOL hasTillAt;

@end

#pragma mark - KEYAPISVCV1GetCameraIntervalsResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraIntervalsResponse_Error_FieldNumber_Validation = 1,
  KEYAPISVCV1GetCameraIntervalsResponse_Error_FieldNumber_Vc = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraIntervalsResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraIntervalsResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISVCV1GetCameraIntervalsResponse_Error_Reason_OneOfCase_Vc = 2,
};

/**
 * Ошибка запроса
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraIntervalsResponse_Error : GPBMessage

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

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

/** Ошибка в сервисе ВН */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1GetCameraIntervalsResponse_Error_VcError *vc;

@end

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

#pragma mark - KEYAPISVCV1GetCameraIntervalsResponse_Error_VcError

typedef GPB_ENUM(KEYAPISVCV1GetCameraIntervalsResponse_Error_VcError_FieldNumber) {
  KEYAPISVCV1GetCameraIntervalsResponse_Error_VcError_FieldNumber_Text = 1,
};

/**
 * Ошибка в сервисе ВН
 **/
GPB_FINAL @interface KEYAPISVCV1GetCameraIntervalsResponse_Error_VcError : GPBMessage

/** Текст ошибки */
@property(nonatomic, readwrite, copy, null_resettable) NSString *text;

@end

#pragma mark - KEYAPISVCV1ValidationError

typedef GPB_ENUM(KEYAPISVCV1ValidationError_FieldNumber) {
  KEYAPISVCV1ValidationError_FieldNumber_Path = 1,
  KEYAPISVCV1ValidationError_FieldNumber_Message = 2,
};

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