// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/vc/v1/keyapis_vc_camera_group_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 KEYAPISVCV1CameraCollection;
@class KEYAPISVCV1CameraCollectionFilter;
@class KEYAPISVCV1CameraCollectionPaging;
@class KEYAPISVCV1CameraCollection_SavingError;
@class KEYAPISVCV1CameraCollection_SavingError_Conflict;
@class KEYAPISVCV1CameraCollection_SavingError_WrongCompanyId;
@class KEYAPISVCV1DeleteCameraCollectionResponse_Error;
@class KEYAPISVCV1GetCameraCollectionCountResponse_Error;
@class KEYAPISVCV1GetCameraCollectionListResponse_Error;
@class KEYAPISVCV1GetCameraCollectionResponse_Error;
@class KEYAPISVCV1PostCameraCollectionRestoreResponse_Error;
@class KEYAPISVCV1SaveCameraCollectionResponse_Error;
@class KEYAPISVCV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISVCV1CameraCollectionPaging_OrderByType

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

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

  /** По имени */
  KEYAPISVCV1CameraCollectionPaging_OrderByType_Name = 2,

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

GPBEnumDescriptor *KEYAPISVCV1CameraCollectionPaging_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 KEYAPISVCV1CameraCollectionPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISVCV1CameraCollectionPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISVCV1CameraCollectionPaging_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 KEYAPISVCV1CameraCollectionPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISVCV1KeyapisVcCameraGroupV1Root

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

#pragma mark - KEYAPISVCV1GetCameraCollectionCountRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionCountRequest_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISVCV1GetCameraCollectionCountResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionCountResponse_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionCountResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraCollectionCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionCountResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraCollectionCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCollectionCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraCollectionCountResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Всего */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraCollectionCountResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionCountResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionCountResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraCollectionCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCollectionCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraCollectionRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionRequest_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISVCV1GetCameraCollectionResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionResponse_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraCollectionResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraCollectionResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCollectionResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraCollectionResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Коллекция камер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraCollection *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraCollectionResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraCollectionResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCollectionResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraCollectionListRequest

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionListRequest_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionListRequest_FieldNumber_Filter = 1,
  KEYAPISVCV1GetCameraCollectionListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionListRequest_Pagination_OneOfCase) {
  KEYAPISVCV1GetCameraCollectionListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCollectionListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISVCV1CameraCollectionFilter

typedef GPB_ENUM(KEYAPISVCV1CameraCollectionFilter_FieldNumber) {
  KEYAPISVCV1CameraCollectionFilter_FieldNumber_Text = 1,
  KEYAPISVCV1CameraCollectionFilter_FieldNumber_TagsArray = 2,
  KEYAPISVCV1CameraCollectionFilter_FieldNumber_CompanyIdsArray = 3,
  KEYAPISVCV1CameraCollectionFilter_FieldNumber_IsDeleted = 4,
};

/**
 * Фильтр коллекций камер
 **/
GPB_FINAL @interface KEYAPISVCV1CameraCollectionFilter : GPBMessage

/**
 * По тексту.
 * Если значение не передано то поиск по нему не производится.
 * # Диапазон: 3..64.
 * # Поиск производится по полям:
 * # - Наименование.
 * # - Описание.
 * # - Теги коллекции
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *text;

/**
 * По тегам.
 * Диапазон: 0..10
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *tagsArray;
/** The number of items in @c tagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger tagsArray_Count;

/**
 * По компаниям.
 * Диапазон: 0..10
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBInt64Array *companyIdsArray;
/** The number of items in @c companyIdsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger companyIdsArray_Count;

/**
 * Показывать удаленные.
 * Если поле не передано, по умолчанию false, фильтр исключает удаленные
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *isDeleted;
/** Test to see if @c isDeleted has been set. */
@property(nonatomic, readwrite) BOOL hasIsDeleted;

@end

#pragma mark - KEYAPISVCV1CameraCollectionPaging

typedef GPB_ENUM(KEYAPISVCV1CameraCollectionPaging_FieldNumber) {
  KEYAPISVCV1CameraCollectionPaging_FieldNumber_OrderByType = 1,
  KEYAPISVCV1CameraCollectionPaging_FieldNumber_DirectionType = 2,
  KEYAPISVCV1CameraCollectionPaging_FieldNumber_Limit = 3,
  KEYAPISVCV1CameraCollectionPaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISVCV1GetCameraCollectionListResponse

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionListResponse_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionListResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1GetCameraCollectionListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionListResponse_Type_OneOfCase) {
  KEYAPISVCV1GetCameraCollectionListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCollectionListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1GetCameraCollectionListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Коллекция камер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraCollection *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1GetCameraCollectionListResponse_Error

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionListResponse_Error_FieldNumber) {
  KEYAPISVCV1GetCameraCollectionListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1GetCameraCollectionListResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1GetCameraCollectionListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1GetCameraCollectionListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1SaveCameraCollectionRequest

typedef GPB_ENUM(KEYAPISVCV1SaveCameraCollectionRequest_FieldNumber) {
  KEYAPISVCV1SaveCameraCollectionRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос на создание коллекции камер
 **/
GPB_FINAL @interface KEYAPISVCV1SaveCameraCollectionRequest : GPBMessage

/** Коллекция камер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraCollection *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISVCV1SaveCameraCollectionResponse

typedef GPB_ENUM(KEYAPISVCV1SaveCameraCollectionResponse_FieldNumber) {
  KEYAPISVCV1SaveCameraCollectionResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1SaveCameraCollectionResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1SaveCameraCollectionResponse_Type_OneOfCase) {
  KEYAPISVCV1SaveCameraCollectionResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1SaveCameraCollectionResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1SaveCameraCollectionResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос на создание коллекции камер
 **/
GPB_FINAL @interface KEYAPISVCV1SaveCameraCollectionResponse : GPBMessage

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

/** Коллекция камер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraCollection *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1SaveCameraCollectionResponse_Error

typedef GPB_ENUM(KEYAPISVCV1SaveCameraCollectionResponse_Error_FieldNumber) {
  KEYAPISVCV1SaveCameraCollectionResponse_Error_FieldNumber_Validation = 1,
  KEYAPISVCV1SaveCameraCollectionResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISVCV1SaveCameraCollectionResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1SaveCameraCollectionResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1SaveCameraCollectionResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISVCV1SaveCameraCollectionResponse_Error_Reason_OneOfCase_Saving = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISVCV1CameraCollection

typedef GPB_ENUM(KEYAPISVCV1CameraCollection_FieldNumber) {
  KEYAPISVCV1CameraCollection_FieldNumber_Id_p = 1,
  KEYAPISVCV1CameraCollection_FieldNumber_Name = 2,
  KEYAPISVCV1CameraCollection_FieldNumber_ChangedAt = 3,
  KEYAPISVCV1CameraCollection_FieldNumber_CompanyId = 4,
  KEYAPISVCV1CameraCollection_FieldNumber_DeletedAt = 5,
  KEYAPISVCV1CameraCollection_FieldNumber_Description_p = 6,
  KEYAPISVCV1CameraCollection_FieldNumber_TagsArray = 7,
  KEYAPISVCV1CameraCollection_FieldNumber_ExternalCameraIdsArray = 8,
};

/**
 * Коллекция камер
 **/
GPB_FINAL @interface KEYAPISVCV1CameraCollection : GPBMessage

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

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

/**
 * Дата изменения коллекции камер.
 * Поле используется при редактировании и создании для контроля актуальности изменяемой версии
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *changedAt;
/** Test to see if @c changedAt has been set. */
@property(nonatomic, readwrite) BOOL hasChangedAt;

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

/**
 * Дата удаления коллекции камер.
 * Поле изменяется через методы Delete и Restore
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *deletedAt;
/** Test to see if @c deletedAt has been set. */
@property(nonatomic, readwrite) BOOL hasDeletedAt;

/**
 * Описание.
 * Диапазон: 0..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *description_p;

/**
 * Теги коллекции.
 * Диапазон: 0..10
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *tagsArray;
/** The number of items in @c tagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger tagsArray_Count;

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

@end

#pragma mark - KEYAPISVCV1CameraCollection_SavingError

typedef GPB_ENUM(KEYAPISVCV1CameraCollection_SavingError_FieldNumber) {
  KEYAPISVCV1CameraCollection_SavingError_FieldNumber_Conflict = 1,
  KEYAPISVCV1CameraCollection_SavingError_FieldNumber_WrongCompanyId = 2,
};

typedef GPB_ENUM(KEYAPISVCV1CameraCollection_SavingError_Reason_OneOfCase) {
  KEYAPISVCV1CameraCollection_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1CameraCollection_SavingError_Reason_OneOfCase_Conflict = 1,
  KEYAPISVCV1CameraCollection_SavingError_Reason_OneOfCase_WrongCompanyId = 2,
};

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

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

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

/** Попытка сохранить коллекцию камер с company_id не своей компании */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1CameraCollection_SavingError_WrongCompanyId *wrongCompanyId;

@end

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

#pragma mark - KEYAPISVCV1CameraCollection_SavingError_Conflict

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

@end

#pragma mark - KEYAPISVCV1CameraCollection_SavingError_WrongCompanyId

/**
 * Попытка сохранить коллекцию камер с company_id не своей компании.
 * Для ролей owner, employee сохранение разрешено только с company_id своей компании
 **/
GPB_FINAL @interface KEYAPISVCV1CameraCollection_SavingError_WrongCompanyId : GPBMessage

@end

#pragma mark - KEYAPISVCV1DeleteCameraCollectionRequest

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraCollectionRequest_FieldNumber) {
  KEYAPISVCV1DeleteCameraCollectionRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISVCV1PostCameraCollectionRestoreRequest

typedef GPB_ENUM(KEYAPISVCV1PostCameraCollectionRestoreRequest_FieldNumber) {
  KEYAPISVCV1PostCameraCollectionRestoreRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос восстановления удаленной коллекции камер
 **/
GPB_FINAL @interface KEYAPISVCV1PostCameraCollectionRestoreRequest : GPBMessage

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

@end

#pragma mark - KEYAPISVCV1DeleteCameraCollectionResponse

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraCollectionResponse_FieldNumber) {
  KEYAPISVCV1DeleteCameraCollectionResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraCollectionResponse_Type_OneOfCase) {
  KEYAPISVCV1DeleteCameraCollectionResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1DeleteCameraCollectionResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1DeleteCameraCollectionResponse_Error

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraCollectionResponse_Error_FieldNumber) {
  KEYAPISVCV1DeleteCameraCollectionResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1DeleteCameraCollectionResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1DeleteCameraCollectionResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1DeleteCameraCollectionResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1PostCameraCollectionRestoreResponse

typedef GPB_ENUM(KEYAPISVCV1PostCameraCollectionRestoreResponse_FieldNumber) {
  KEYAPISVCV1PostCameraCollectionRestoreResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PostCameraCollectionRestoreResponse_Type_OneOfCase) {
  KEYAPISVCV1PostCameraCollectionRestoreResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PostCameraCollectionRestoreResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISVCV1PostCameraCollectionRestoreResponse_Error

typedef GPB_ENUM(KEYAPISVCV1PostCameraCollectionRestoreResponse_Error_FieldNumber) {
  KEYAPISVCV1PostCameraCollectionRestoreResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISVCV1PostCameraCollectionRestoreResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1PostCameraCollectionRestoreResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PostCameraCollectionRestoreResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
