// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/encryption_profile/v1/keyapis_encryption_profile_encryption_profile_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 KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error;
@class KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_LinkedDevicesExists;
@class KEYAPISENCRYPTIONPROFILEV1EncryptionProfile;
@class KEYAPISENCRYPTIONPROFILEV1EncryptionProfileFilter;
@class KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging;
@class KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError;
@class KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_Conflict;
@class KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_RangeIsTooSmall;
@class KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Error;
@class KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Error;
@class KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Error;
@class KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error;
@class KEYAPISENCRYPTIONPROFILEV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_Type

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

  /** Тип SL3 */
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_Type_Sl3 = 1,
};

GPBEnumDescriptor *KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_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 KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_OrderByType

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

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

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

  /** Дата создания */
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_OrderByType_CreatedAt = 3,

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

GPBEnumDescriptor *KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_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 KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_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 KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISENCRYPTIONPROFILEV1KeyapisEncryptionProfileEncryptionProfileV1Root

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1EncryptionProfile

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_Id_p = 1,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_Name = 2,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_Description_p = 3,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_Type = 4,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_SectorNumber = 5,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_BlockNumber = 6,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_StartIndex = 7,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_EndIndex = 8,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_SecretA = 9,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_EncryptedSecretA = 10,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_SecretB = 11,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_EncryptedSecretB = 12,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_CreatedAt = 13,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_ChangedAt = 14,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_FieldNumber_DeletedAt = 15,
};

/**
 * Профиль шифрования.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1EncryptionProfile : GPBMessage

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

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

/**
 * Описание.
 * # Диапазон: 3..1000
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *description_p;
/** Test to see if @c description_p has been set. */
@property(nonatomic, readwrite) BOOL hasDescription_p;

/** Тип профиля шифрования */
@property(nonatomic, readwrite) KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_Type type;

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

/**
 * Номер блока.
 * # Диапазон: 0..3
 **/
@property(nonatomic, readwrite) int32_t blockNumber;

/**
 * Индекс первого символа для секрета.
 * # Диапазон: 0..31
 **/
@property(nonatomic, readwrite) int32_t startIndex;

/**
 * Индекс последнего символа для секрета.
 * # Диапазон: 0..31
 **/
@property(nonatomic, readwrite) int32_t endIndex;

/**
 * Пароль A профиля.
 * # Диапазон: 16..32
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *secretA;

/** Зашифрованный пароль B профиля */
@property(nonatomic, readwrite, copy, null_resettable) NSString *encryptedSecretA;

/**
 * Пароль B профиля.
 * # Диапазон: 16..32
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *secretB;

/** Зашифрованный пароль B профиля */
@property(nonatomic, readwrite, copy, null_resettable) NSString *encryptedSecretB;

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

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

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_FieldNumber_Conflict = 1,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_FieldNumber_RangeIsTooSmall = 2,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_Reason_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_Reason_OneOfCase_Conflict = 1,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_Reason_OneOfCase_RangeIsTooSmall = 2,
};

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

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

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

/** Указанный диапазон не соответствует минимальному значению */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_RangeIsTooSmall *rangeIsTooSmall;

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_Conflict

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

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_RangeIsTooSmall

/**
 * Указанный диапазон не соответствует минимальному значению.
 * Причины:
 * - Модуль разности между полями start_index и end_index меньше 7
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1EncryptionProfile_SavingError_RangeIsTooSmall : GPBMessage

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1EncryptionProfileFilter

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1EncryptionProfileFilter_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfileFilter_FieldNumber_Text = 1,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfileFilter_FieldNumber_TypesArray = 2,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfileFilter_FieldNumber_ShowDeleted = 3,
};

/**
 * Фильтр по профилям шифрования
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1EncryptionProfileFilter : GPBMessage

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

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

/** Показывать удаленные */
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolValue *showDeleted;
/** Test to see if @c showDeleted has been set. */
@property(nonatomic, readwrite) BOOL hasShowDeleted;

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_FieldNumber_OrderByType = 1,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_FieldNumber_DirectionType = 2,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_FieldNumber_Limit = 3,
  KEYAPISENCRYPTIONPROFILEV1EncryptionProfilePaging_FieldNumber_Offset = 4,
};

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

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

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

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRequest

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRequest_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос сохранения шифрования по идентификатору
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRequest : GPBMessage

/** Профиль шифрования */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISENCRYPTIONPROFILEV1EncryptionProfile *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_FieldNumber_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Type_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Профиль шифрования */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISENCRYPTIONPROFILEV1EncryptionProfile *data_p;

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error_FieldNumber_Validation = 1,
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error_Reason_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileResponse_Error_Reason_OneOfCase_Saving = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest_FieldNumber_Filter = 1,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest_Pagination_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос на получение списка профилей шифрования
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListRequest : GPBMessage

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

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

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_FieldNumber_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Type_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Профиль шифрования */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISENCRYPTIONPROFILEV1EncryptionProfile *data_p;

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Error

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Error_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Error_Reason_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileRequest

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileRequest_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос получения профиля шифрования
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileRequest : GPBMessage

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

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_FieldNumber_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Type_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Профиль шифрования */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISENCRYPTIONPROFILEV1EncryptionProfile *data_p;

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Error

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Error_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Error_Reason_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountRequest

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountRequest_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_FieldNumber_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Type_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Всего устройтсв */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Error

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Error_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Error_Reason_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1GetEncryptionProfileCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileRequest

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileRequest_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос удаления профиля шифрования
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileRequest : GPBMessage

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

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Type_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_FieldNumber_LinkedDevicesExists = 1,
};

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_Reason_OneOfCase) {
  KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_Reason_OneOfCase_LinkedDevicesExists = 1,
};

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

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

/** Существуют устройства, связанные с этим профилем шифрования */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_LinkedDevicesExists *linkedDevicesExists;

@end

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

#pragma mark - KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_LinkedDevicesExists

/**
 * Существуют устройства, связанные с этим профилем шифрования.
 * Следует отвязать устройства перед удалением профиля
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1DeleteEncryptionProfileResponse_Error_LinkedDevicesExists : GPBMessage

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRestoreRequest

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRestoreRequest_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRestoreRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос разархивации шифрования по идентификатору
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRestoreRequest : GPBMessage

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

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRestoreResponse

/**
 * Отвест на запрос разархивации шифрования по идентификатору
 **/
GPB_FINAL @interface KEYAPISENCRYPTIONPROFILEV1PostEncryptionProfileRestoreResponse : GPBMessage

@end

#pragma mark - KEYAPISENCRYPTIONPROFILEV1ValidationError

typedef GPB_ENUM(KEYAPISENCRYPTIONPROFILEV1ValidationError_FieldNumber) {
  KEYAPISENCRYPTIONPROFILEV1ValidationError_FieldNumber_Path = 1,
  KEYAPISENCRYPTIONPROFILEV1ValidationError_FieldNumber_Message = 2,
};

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