// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/vc/v1/keyapis_vc_camera_video_data_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 KEYAPISVCV1CameraVideoData;
@class KEYAPISVCV1CameraVideoDataFilter;
@class KEYAPISVCV1CameraVideoDataPaging;
@class KEYAPISVCV1CameraVideoDataScope;
@class KEYAPISVCV1CameraVideoData_Category;
@class KEYAPISVCV1CameraVideoData_Location;
@class KEYAPISVCV1CameraVideoData_Status;
@class KEYAPISVCV1GetCameraVideoDataCountResponse_Error;
@class KEYAPISVCV1GetCameraVideoDataListResponse_Error;
@class KEYAPISVCV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISVCV1CameraVideoDataPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISVCV1CameraVideoDataPaging_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 KEYAPISVCV1CameraVideoDataPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISVCV1CameraVideoDataPaging_OrderByType

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

  /** По дате создания */
  KEYAPISVCV1CameraVideoDataPaging_OrderByType_CreatedAt = 1,
};

GPBEnumDescriptor *KEYAPISVCV1CameraVideoDataPaging_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 KEYAPISVCV1CameraVideoDataPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - KEYAPISVCV1KeyapisVcCameraVideoDataV1Root

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

#pragma mark - KEYAPISVCV1CameraVideoData

typedef GPB_ENUM(KEYAPISVCV1CameraVideoData_FieldNumber) {
  KEYAPISVCV1CameraVideoData_FieldNumber_Uid = 1,
  KEYAPISVCV1CameraVideoData_FieldNumber_Category = 2,
  KEYAPISVCV1CameraVideoData_FieldNumber_Title = 3,
  KEYAPISVCV1CameraVideoData_FieldNumber_SerialNumber = 4,
  KEYAPISVCV1CameraVideoData_FieldNumber_Ip = 5,
  KEYAPISVCV1CameraVideoData_FieldNumber_StreamerURL = 6,
  KEYAPISVCV1CameraVideoData_FieldNumber_Mac = 7,
  KEYAPISVCV1CameraVideoData_FieldNumber_Model = 8,
  KEYAPISVCV1CameraVideoData_FieldNumber_Vendor = 9,
  KEYAPISVCV1CameraVideoData_FieldNumber_Status = 10,
  KEYAPISVCV1CameraVideoData_FieldNumber_ScreenshotURLTemplate = 11,
  KEYAPISVCV1CameraVideoData_FieldNumber_ScreenshotPreciseURLTemplate = 12,
  KEYAPISVCV1CameraVideoData_FieldNumber_UserToken = 13,
  KEYAPISVCV1CameraVideoData_FieldNumber_StreamerToken = 14,
  KEYAPISVCV1CameraVideoData_FieldNumber_ScreenshotToken = 15,
  KEYAPISVCV1CameraVideoData_FieldNumber_ArchiveLength = 16,
  KEYAPISVCV1CameraVideoData_FieldNumber_Location = 17,
  KEYAPISVCV1CameraVideoData_FieldNumber_CreatedAt = 18,
  KEYAPISVCV1CameraVideoData_FieldNumber_UpdatedAt = 19,
  KEYAPISVCV1CameraVideoData_FieldNumber_UtcOffset = 20,
};

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

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

/** Категория камеры */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraVideoData_Category *category;
/** Test to see if @c category has been set. */
@property(nonatomic, readwrite) BOOL hasCategory;

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

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

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

/** Адрес видео-потока (https соединение) */
@property(nonatomic, readwrite, copy, null_resettable) NSString *streamerURL;

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

/** Модель камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *model;

/** Производитель камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *vendor;

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

/** URL скриншотов разных размеров в JPG-формате */
@property(nonatomic, readwrite, copy, null_resettable) NSString *screenshotURLTemplate;

/** Шаблон для “точных” скриншотов. Выдаёт скриншоты всех размеров */
@property(nonatomic, readwrite, copy, null_resettable) NSString *screenshotPreciseURLTemplate;

/** U-Токен, кука, которая выдается Умному Дому */
@property(nonatomic, readwrite, copy, null_resettable) NSString *userToken;

/** Токен для воспроизведения видео с камеры */
@property(nonatomic, readwrite, copy, null_resettable) NSString *streamerToken;

/** Токен для получения контента с cdn (например, файлов изображений) */
@property(nonatomic, readwrite, copy, null_resettable) NSString *screenshotToken;

/** Глубина хранения видео в минутах */
@property(nonatomic, readwrite) int32_t archiveLength;

/** Координаты месторасположения */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraVideoData_Location *location;
/** Test to see if @c location has been set. */
@property(nonatomic, readwrite) BOOL hasLocation;

/** Дата создания */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *createdAt;
/** Test to see if @c createdAt has been set. */
@property(nonatomic, readwrite) BOOL hasCreatedAt;

/** Дата обновления */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *updatedAt;
/** Test to see if @c updatedAt has been set. */
@property(nonatomic, readwrite) BOOL hasUpdatedAt;

/**
 * Смещение таймзоны в минутах.
 * # Диапазон: -720..840
 **/
@property(nonatomic, readwrite) int32_t utcOffset;

@end

#pragma mark - KEYAPISVCV1CameraVideoData_Category

typedef GPB_ENUM(KEYAPISVCV1CameraVideoData_Category_FieldNumber) {
  KEYAPISVCV1CameraVideoData_Category_FieldNumber_Id_p = 1,
  KEYAPISVCV1CameraVideoData_Category_FieldNumber_Type = 2,
  KEYAPISVCV1CameraVideoData_Category_FieldNumber_Title = 3,
};

/**
 * Категория камеры
 **/
GPB_FINAL @interface KEYAPISVCV1CameraVideoData_Category : GPBMessage

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

/** Тип группы */
@property(nonatomic, readwrite, copy, null_resettable) NSString *type;

/** Имя группы */
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

@end

#pragma mark - KEYAPISVCV1CameraVideoData_Location

typedef GPB_ENUM(KEYAPISVCV1CameraVideoData_Location_FieldNumber) {
  KEYAPISVCV1CameraVideoData_Location_FieldNumber_Lat = 1,
  KEYAPISVCV1CameraVideoData_Location_FieldNumber_Lng = 2,
};

/**
 * Координаты месторасположения
 **/
GPB_FINAL @interface KEYAPISVCV1CameraVideoData_Location : GPBMessage

/** Широта */
@property(nonatomic, readwrite) double lat;

/** Долгота */
@property(nonatomic, readwrite) double lng;

@end

#pragma mark - KEYAPISVCV1CameraVideoData_Status

typedef GPB_ENUM(KEYAPISVCV1CameraVideoData_Status_FieldNumber) {
  KEYAPISVCV1CameraVideoData_Status_FieldNumber_Id_p = 1,
  KEYAPISVCV1CameraVideoData_Status_FieldNumber_Type = 2,
  KEYAPISVCV1CameraVideoData_Status_FieldNumber_Title = 3,
};

/**
 * Статус камеры
 **/
GPB_FINAL @interface KEYAPISVCV1CameraVideoData_Status : GPBMessage

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

/** online/offline */
@property(nonatomic, readwrite, copy, null_resettable) NSString *type;

/** Доступна/Не доступна */
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

@end

#pragma mark - KEYAPISVCV1CameraVideoDataFilter

typedef GPB_ENUM(KEYAPISVCV1CameraVideoDataFilter_FieldNumber) {
  KEYAPISVCV1CameraVideoDataFilter_FieldNumber_UidsArray = 1,
  KEYAPISVCV1CameraVideoDataFilter_FieldNumber_TitleArray = 2,
  KEYAPISVCV1CameraVideoDataFilter_FieldNumber_MacArray = 3,
  KEYAPISVCV1CameraVideoDataFilter_FieldNumber_IpArray = 4,
  KEYAPISVCV1CameraVideoDataFilter_FieldNumber_SerialNumberArray = 5,
  KEYAPISVCV1CameraVideoDataFilter_FieldNumber_CategoryArray = 6,
};

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

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

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

/** MAC-адрес камеры */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *macArray;
/** The number of items in @c macArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger macArray_Count;

/** IP камеры */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *ipArray;
/** The number of items in @c ipArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger ipArray_Count;

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

/** Категория камеры */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *categoryArray;
/** The number of items in @c categoryArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger categoryArray_Count;

@end

#pragma mark - KEYAPISVCV1CameraVideoDataPaging

typedef GPB_ENUM(KEYAPISVCV1CameraVideoDataPaging_FieldNumber) {
  KEYAPISVCV1CameraVideoDataPaging_FieldNumber_OrderByType = 1,
  KEYAPISVCV1CameraVideoDataPaging_FieldNumber_DirectionType = 2,
  KEYAPISVCV1CameraVideoDataPaging_FieldNumber_Limit = 3,
  KEYAPISVCV1CameraVideoDataPaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISVCV1CameraVideoDataScope

typedef GPB_ENUM(KEYAPISVCV1CameraVideoDataScope_FieldNumber) {
  KEYAPISVCV1CameraVideoDataScope_FieldNumber_CompanyId = 1,
  KEYAPISVCV1CameraVideoDataScope_FieldNumber_UserId = 2,
};

typedef GPB_ENUM(KEYAPISVCV1CameraVideoDataScope_Scope_OneOfCase) {
  KEYAPISVCV1CameraVideoDataScope_Scope_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1CameraVideoDataScope_Scope_OneOfCase_CompanyId = 1,
  KEYAPISVCV1CameraVideoDataScope_Scope_OneOfCase_UserId = 2,
};

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

@property(nonatomic, readonly) KEYAPISVCV1CameraVideoDataScope_Scope_OneOfCase scopeOneOfCase;

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

/** Идентификатор пользователя */
@property(nonatomic, readwrite) int32_t userId;

@end

/**
 * Clears whatever value was set for the oneof 'scope'.
 **/
void KEYAPISVCV1CameraVideoDataScope_ClearScopeOneOfCase(KEYAPISVCV1CameraVideoDataScope *message);

#pragma mark - KEYAPISVCV1GetCameraVideoDataCountRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataCountRequest_FieldNumber) {
  KEYAPISVCV1GetCameraVideoDataCountRequest_FieldNumber_Scope = 1,
  KEYAPISVCV1GetCameraVideoDataCountRequest_FieldNumber_Filter = 2,
};

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

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

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

@end

#pragma mark - KEYAPISVCV1GetCameraVideoDataCountResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataCountResponse_FieldNumber) {
  KEYAPISVCV1GetCameraVideoDataCountResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraVideoDataCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataCountResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraVideoDataCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraVideoDataCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraVideoDataCountResponse_Type_OneOfCase_Error = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraVideoDataCountResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataCountResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraVideoDataCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataCountResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraVideoDataCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraVideoDataCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraVideoDataListRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataListRequest_FieldNumber) {
  KEYAPISVCV1GetCameraVideoDataListRequest_FieldNumber_Scope = 1,
  KEYAPISVCV1GetCameraVideoDataListRequest_FieldNumber_Filter = 2,
  KEYAPISVCV1GetCameraVideoDataListRequest_FieldNumber_Paging = 3,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataListRequest_Pagination_OneOfCase) {
  KEYAPISVCV1GetCameraVideoDataListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraVideoDataListRequest_Pagination_OneOfCase_Paging = 3,
};

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

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

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraVideoDataListResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataListResponse_FieldNumber) {
  KEYAPISVCV1GetCameraVideoDataListResponse_FieldNumber_DataArray = 1,
  KEYAPISVCV1GetCameraVideoDataListResponse_FieldNumber_Error = 2,
};

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

/** Камера */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISVCV1CameraVideoData*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

/** Ошибка */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1GetCameraVideoDataListResponse_Error *error;
/** Test to see if @c error has been set. */
@property(nonatomic, readwrite) BOOL hasError;

@end

#pragma mark - KEYAPISVCV1GetCameraVideoDataListResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataListResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraVideoDataListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraVideoDataListResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraVideoDataListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraVideoDataListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
