// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/multiapp/v1/keyapis_multiapp_app_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 KEYAPISMULTIAPPV1App;
@class KEYAPISMULTIAPPV1AppFilter;
@class KEYAPISMULTIAPPV1AppLite;
@class KEYAPISMULTIAPPV1AppLiteFilter;
@class KEYAPISMULTIAPPV1AppLiteFilter_AppLiteTag;
@class KEYAPISMULTIAPPV1AppLitePaging;
@class KEYAPISMULTIAPPV1AppLite_LinkLite;
@class KEYAPISMULTIAPPV1AppPaging;
@class KEYAPISMULTIAPPV1App_Link;
@class KEYAPISMULTIAPPV1App_Permissions;
@class KEYAPISMULTIAPPV1App_SavingError;
@class KEYAPISMULTIAPPV1App_SavingError_Conflict;
@class KEYAPISMULTIAPPV1App_SavingError_PartnerIsDeleted;
@class KEYAPISMULTIAPPV1App_SavingError_PartnerIsNotExist;
@class KEYAPISMULTIAPPV1DeleteAppResponse_Error;
@class KEYAPISMULTIAPPV1GetAppCodeResponse_Error;
@class KEYAPISMULTIAPPV1GetAppCodeResponse_Error_AppIsInactive;
@class KEYAPISMULTIAPPV1GetAppCodeResponse_Error_PartnerKeyDoesNotExist;
@class KEYAPISMULTIAPPV1GetAppCountResponse_Error;
@class KEYAPISMULTIAPPV1GetAppListResponse_Error;
@class KEYAPISMULTIAPPV1GetAppLiteCountResponse_Error;
@class KEYAPISMULTIAPPV1GetAppLiteListResponse_Error;
@class KEYAPISMULTIAPPV1GetAppLiteResponse_Error;
@class KEYAPISMULTIAPPV1GetAppResponse_Error;
@class KEYAPISMULTIAPPV1PostAppResponse_Error;
@class KEYAPISMULTIAPPV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISMULTIAPPV1App_Type

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

  /** Стандартное приложение */
  KEYAPISMULTIAPPV1App_Type_Standard = 1,
};

GPBEnumDescriptor *KEYAPISMULTIAPPV1App_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 KEYAPISMULTIAPPV1App_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1App_StatusType

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

  /** Заблокирован */
  KEYAPISMULTIAPPV1App_StatusType_Blocked = 1,

  /** Активен */
  KEYAPISMULTIAPPV1App_StatusType_Active = 2,

  /** Удален */
  KEYAPISMULTIAPPV1App_StatusType_Deleted = 3,
};

GPBEnumDescriptor *KEYAPISMULTIAPPV1App_StatusType_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 KEYAPISMULTIAPPV1App_StatusType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1App_PlatformType

/**
 * Справочник платформ.
 * # Тип: byte
 **/
typedef GPB_ENUM(KEYAPISMULTIAPPV1App_PlatformType) {
  /**
   * 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.
   **/
  KEYAPISMULTIAPPV1App_PlatformType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISMULTIAPPV1App_PlatformType_PlatformTypeUnknown = 0,

  /**
   * Платформа iOS.
   * Приложение размещается в App Store
   **/
  KEYAPISMULTIAPPV1App_PlatformType_Ios = 1,

  /**
   * Платформа Android.
   * Приложение размещается в Google Play, App Gallery или прочих сторах
   **/
  KEYAPISMULTIAPPV1App_PlatformType_Android = 2,

  /**
   * Платформа Web.
   * Приложение размещается по интернет адресу
   **/
  KEYAPISMULTIAPPV1App_PlatformType_Web = 3,
};

GPBEnumDescriptor *KEYAPISMULTIAPPV1App_PlatformType_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 KEYAPISMULTIAPPV1App_PlatformType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1App_GrantType

/** Справочник разрешений */
typedef GPB_ENUM(KEYAPISMULTIAPPV1App_GrantType) {
  /**
   * 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.
   **/
  KEYAPISMULTIAPPV1App_GrantType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISMULTIAPPV1App_GrantType_GrantTypeUnknown = 0,

  /** Разрешение на получение авторизационного токена посредством метода GET /multiapp/api/v1/partner/token */
  KEYAPISMULTIAPPV1App_GrantType_GetAccessToken = 1,

  /** Разрешение на получение идентификационного доступа посредством метода GET /multiapp/api/v1/partner/token */
  KEYAPISMULTIAPPV1App_GrantType_GetIdToken = 2,

  /** Разрешение на отправку уведомлений без проверки назначений приложения методом POST /multiapp/api/v1/notification */
  KEYAPISMULTIAPPV1App_GrantType_PostNotifNoAssignCheck = 3,
};

GPBEnumDescriptor *KEYAPISMULTIAPPV1App_GrantType_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 KEYAPISMULTIAPPV1App_GrantType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1App_Link_Type

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

  /** Ссылка для перехода на раздел текущего приложения */
  KEYAPISMULTIAPPV1App_Link_Type_InternalApp = 1,

  /** Ссылка для перехода на стороннее приложение */
  KEYAPISMULTIAPPV1App_Link_Type_ExternalApp = 2,

  /**
   * Ссылка для перехода на веб-вью внутренних (своих) приложений.
   * В окне отсутствует адресаная строка.
   * Для iOS используется WKWebView, для Android используется WebView
   **/
  KEYAPISMULTIAPPV1App_Link_Type_WebView = 3,

  /** Ссылка для перехода на веб-браузер */
  KEYAPISMULTIAPPV1App_Link_Type_WebBrowser = 4,

  /**
   * Ссылка для перехода на веб-вью внешних (партнёрских) приложений.
   * В окне присутствует адресаная строка.
   * Для iOS используется SFSafariViewController, для Android используется ChromeCustomTabs
   **/
  KEYAPISMULTIAPPV1App_Link_Type_ExternalWebView = 5,
};

GPBEnumDescriptor *KEYAPISMULTIAPPV1App_Link_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 KEYAPISMULTIAPPV1App_Link_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType

/** Справочник разрешенных типов токена */
typedef GPB_ENUM(KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType) {
  /**
   * 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.
   **/
  KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType_AllowedTokenTypeUnknown = 0,

  /** Идентификационный */
  KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType_Id = 1,

  /** Авторизационный */
  KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType_Access = 2,
};

GPBEnumDescriptor *KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType_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 KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1AppPaging_OrderByType

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

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

  /** Дата создания */
  KEYAPISMULTIAPPV1AppPaging_OrderByType_CreatedAt = 2,

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

GPBEnumDescriptor *KEYAPISMULTIAPPV1AppPaging_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 KEYAPISMULTIAPPV1AppPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1AppPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISMULTIAPPV1AppPaging_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 KEYAPISMULTIAPPV1AppPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1AppLitePaging_OrderByType

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

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

  /** Дата создания */
  KEYAPISMULTIAPPV1AppLitePaging_OrderByType_CreatedAt = 2,
};

GPBEnumDescriptor *KEYAPISMULTIAPPV1AppLitePaging_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 KEYAPISMULTIAPPV1AppLitePaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1AppLitePaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISMULTIAPPV1AppLitePaging_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 KEYAPISMULTIAPPV1AppLitePaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISMULTIAPPV1KeyapisMultiappAppV1Root

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

#pragma mark - KEYAPISMULTIAPPV1App

typedef GPB_ENUM(KEYAPISMULTIAPPV1App_FieldNumber) {
  KEYAPISMULTIAPPV1App_FieldNumber_Id_p = 1,
  KEYAPISMULTIAPPV1App_FieldNumber_PartnerId = 2,
  KEYAPISMULTIAPPV1App_FieldNumber_Type = 3,
  KEYAPISMULTIAPPV1App_FieldNumber_Title = 4,
  KEYAPISMULTIAPPV1App_FieldNumber_Header = 5,
  KEYAPISMULTIAPPV1App_FieldNumber_Subtitle = 6,
  KEYAPISMULTIAPPV1App_FieldNumber_BackgroundColor = 7,
  KEYAPISMULTIAPPV1App_FieldNumber_StatusType = 8,
  KEYAPISMULTIAPPV1App_FieldNumber_LinksArray = 9,
  KEYAPISMULTIAPPV1App_FieldNumber_UserTagsArray = 10,
  KEYAPISMULTIAPPV1App_FieldNumber_AppTagsArray = 11,
  KEYAPISMULTIAPPV1App_FieldNumber_CreatedAt = 12,
  KEYAPISMULTIAPPV1App_FieldNumber_ChangedAt = 13,
  KEYAPISMULTIAPPV1App_FieldNumber_Permissions = 14,
  KEYAPISMULTIAPPV1App_FieldNumber_GrantTypesArray = 15,
};

/**
 * Приложение.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1App : GPBMessage

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

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

/** Тип приложения */
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_Type type;

/**
 * Системное наименование.
 * Не отображается пользователям.
 * # Диапазон: 3..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/**
 * Заголовок.
 * # Диапазон: 3..30
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *header;
/** Test to see if @c header has been set. */
@property(nonatomic, readwrite) BOOL hasHeader;

/**
 * Подзаголовок.
 * # Диапазон: 3..60
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *subtitle;
/** Test to see if @c subtitle has been set. */
@property(nonatomic, readwrite) BOOL hasSubtitle;

/**
 * Цвет заднего плана(подложки).
 * Все цвета должны быть в формате hex #RRGGBBAA.
 * Пример: #7e00c380.
 * # Диапазон: 9..9.
 * # Паттерн: /^#[0-9a-fA-F]{8}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *backgroundColor;
/** Test to see if @c backgroundColor has been set. */
@property(nonatomic, readwrite) BOOL hasBackgroundColor;

/** Статус приложения */
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_StatusType statusType;

/**
 * Ссылки для переходов.
 * # Диапазон: 0..100
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISMULTIAPPV1App_Link*> *linksArray;
/** The number of items in @c linksArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger linksArray_Count;

/**
 * Список тегов пользователей.
 * Обязательное.
 * Описывает кто может видеть приложение.
 * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
 * # Диапазон: 1..100.
 * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *userTagsArray;
/** The number of items in @c userTagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger userTagsArray_Count;

/**
 * Список тегов приложений.
 * Обязательное.
 * Описывает какие клиенты могут видеть приложение.
 * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
 * # Диапазон: 1..20.
 * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *appTagsArray;
/** The number of items in @c appTagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger appTagsArray_Count;

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

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

/** Разрешения */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1App_Permissions *permissions GPB_DEPRECATED_MSG("keyapis.multiapp.v1.App.permissions is deprecated (see keyapis/multiapp/v1/keyapis_multiapp_app_v1.proto).");
/** Test to see if @c permissions has been set. */
@property(nonatomic, readwrite) BOOL hasPermissions GPB_DEPRECATED_MSG("keyapis.multiapp.v1.App.permissions is deprecated (see keyapis/multiapp/v1/keyapis_multiapp_app_v1.proto).");

/** Список разрешений */
// |grantTypesArray| contains |KEYAPISMULTIAPPV1App_GrantType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *grantTypesArray;
/** The number of items in @c grantTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger grantTypesArray_Count;

@end

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

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

#pragma mark - KEYAPISMULTIAPPV1App_Link

typedef GPB_ENUM(KEYAPISMULTIAPPV1App_Link_FieldNumber) {
  KEYAPISMULTIAPPV1App_Link_FieldNumber_PlatformType = 1,
  KEYAPISMULTIAPPV1App_Link_FieldNumber_Type = 2,
  KEYAPISMULTIAPPV1App_Link_FieldNumber_URL = 3,
  KEYAPISMULTIAPPV1App_Link_FieldNumber_PackagesArray = 4,
};

/**
 * Ссылка
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1App_Link : GPBMessage

/**
 * Тип платформы.
 * Обязательное
 **/
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_PlatformType platformType;

/**
 * Тип ссылки.
 * Обязательное
 **/
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_Link_Type type;

/**
 * Значение ссылки для перехода.
 * Обязательное.
 * # Диапазон: 12..512
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *URL;

/**
 * Список пакетов.
 * Если пусто попытка перехода осуществляется безусловно.
 * Если заполнено, то переход осуществляется только в случае если хоть один пакет есть на устройстве, иначе обработка переходит к следующей ссылке.
 * # Диапазон: 0..20
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *packagesArray;
/** The number of items in @c packagesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger packagesArray_Count;

@end

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

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

#pragma mark - KEYAPISMULTIAPPV1App_Permissions

typedef GPB_ENUM(KEYAPISMULTIAPPV1App_Permissions_FieldNumber) {
  KEYAPISMULTIAPPV1App_Permissions_FieldNumber_AllowedTokenTypesArray = 1,
};

/**
 * Разрешения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1App_Permissions : GPBMessage

/** Список разрешенных типов токена */
// |allowedTokenTypesArray| contains |KEYAPISMULTIAPPV1App_Permissions_AllowedTokenType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *allowedTokenTypesArray;
/** The number of items in @c allowedTokenTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger allowedTokenTypesArray_Count;

@end

#pragma mark - KEYAPISMULTIAPPV1App_SavingError

typedef GPB_ENUM(KEYAPISMULTIAPPV1App_SavingError_FieldNumber) {
  KEYAPISMULTIAPPV1App_SavingError_FieldNumber_Conflict = 1,
  KEYAPISMULTIAPPV1App_SavingError_FieldNumber_PartnerIsNotExist = 2,
  KEYAPISMULTIAPPV1App_SavingError_FieldNumber_PartnerIsDeleted = 3,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1App_SavingError_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1App_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1App_SavingError_Reason_OneOfCase_Conflict = 1,
  KEYAPISMULTIAPPV1App_SavingError_Reason_OneOfCase_PartnerIsNotExist = 2,
  KEYAPISMULTIAPPV1App_SavingError_Reason_OneOfCase_PartnerIsDeleted = 3,
};

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

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

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

/** Переданный партнер не существует */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1App_SavingError_PartnerIsNotExist *partnerIsNotExist;

/** Переданный партнер удален */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1App_SavingError_PartnerIsDeleted *partnerIsDeleted;

@end

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

#pragma mark - KEYAPISMULTIAPPV1App_SavingError_Conflict

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

@end

#pragma mark - KEYAPISMULTIAPPV1App_SavingError_PartnerIsNotExist

/**
 * Переданный партнер не существует.
 * Причины:
 * - В базе нет партнера с переданным partner_id
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1App_SavingError_PartnerIsNotExist : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1App_SavingError_PartnerIsDeleted

/**
 * Переданный партнер удален.
 * Причины:
 * - В базе удален партнер с переданным partner_id
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1App_SavingError_PartnerIsDeleted : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1AppLite

typedef GPB_ENUM(KEYAPISMULTIAPPV1AppLite_FieldNumber) {
  KEYAPISMULTIAPPV1AppLite_FieldNumber_Id_p = 1,
  KEYAPISMULTIAPPV1AppLite_FieldNumber_Title = 2,
  KEYAPISMULTIAPPV1AppLite_FieldNumber_Header = 3,
  KEYAPISMULTIAPPV1AppLite_FieldNumber_Subtitle = 4,
  KEYAPISMULTIAPPV1AppLite_FieldNumber_BackgroundColor = 5,
  KEYAPISMULTIAPPV1AppLite_FieldNumber_StatusType = 6,
  KEYAPISMULTIAPPV1AppLite_FieldNumber_LinksArray = 7,
};

/**
 * Облегчённое приложение
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1AppLite : GPBMessage

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

/**
 * Наименование.
 * Не отображается пользователям.
 * # Диапазон: 3..256
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *title;

/**
 * Заголовок.
 * # Диапазон: 3..30
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *header;
/** Test to see if @c header has been set. */
@property(nonatomic, readwrite) BOOL hasHeader;

/**
 * Подзаголовок.
 * # Диапазон: 3..60
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *subtitle;
/** Test to see if @c subtitle has been set. */
@property(nonatomic, readwrite) BOOL hasSubtitle;

/**
 * Цвет заднего плана(подложки).
 * Все цвета должны быть в формате hex #RRGGBBAA.
 * Пример: #7e00c380.
 * # Диапазон: 9..9.
 * # Паттерн: /^#[0-9a-fA-F]{8}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *backgroundColor;
/** Test to see if @c backgroundColor has been set. */
@property(nonatomic, readwrite) BOOL hasBackgroundColor;

/** Статус приложения */
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_StatusType statusType;

/** Ссылки для переходов */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISMULTIAPPV1AppLite_LinkLite*> *linksArray;
/** The number of items in @c linksArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger linksArray_Count;

@end

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

#pragma mark - KEYAPISMULTIAPPV1AppLite_LinkLite

typedef GPB_ENUM(KEYAPISMULTIAPPV1AppLite_LinkLite_FieldNumber) {
  KEYAPISMULTIAPPV1AppLite_LinkLite_FieldNumber_PlatformType = 1,
  KEYAPISMULTIAPPV1AppLite_LinkLite_FieldNumber_Type = 2,
  KEYAPISMULTIAPPV1AppLite_LinkLite_FieldNumber_URL = 3,
  KEYAPISMULTIAPPV1AppLite_LinkLite_FieldNumber_PackagesArray = 4,
};

/**
 * Упрощённая ссылка
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1AppLite_LinkLite : GPBMessage

/**
 * Тип платформы.
 * Обязательное
 **/
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_PlatformType platformType;

/**
 * Тип ссылки.
 * Обязательное
 **/
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_Link_Type type;

/**
 * Значение ссылки для перехода.
 * Обязательное
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *URL;

/**
 * Список пакетов.
 * Если пусто попытка перехода осуществляется безусловно.
 * Если заполнено, то переход осуществляется только в случае если хоть один пакет есть на устройстве, иначе обработка переходит к следующей ссылке
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *packagesArray;
/** The number of items in @c packagesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger packagesArray_Count;

@end

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

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

#pragma mark - KEYAPISMULTIAPPV1AppFilter

typedef GPB_ENUM(KEYAPISMULTIAPPV1AppFilter_FieldNumber) {
  KEYAPISMULTIAPPV1AppFilter_FieldNumber_Text = 1,
  KEYAPISMULTIAPPV1AppFilter_FieldNumber_TypesArray = 2,
  KEYAPISMULTIAPPV1AppFilter_FieldNumber_PartnerIdsArray = 3,
  KEYAPISMULTIAPPV1AppFilter_FieldNumber_StatusTypesArray = 4,
  KEYAPISMULTIAPPV1AppFilter_FieldNumber_UserTagsArray = 5,
  KEYAPISMULTIAPPV1AppFilter_FieldNumber_AppTagsArray = 6,
};

/**
 * Фильтр приложений
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1AppFilter : GPBMessage

/**
 * По тексту.
 * Если значение не передано то поиск по нему не производится.
 * # Диапазон: 3..64.
 * # Поиск производится по полям:
 * # - Системное наименование;
 * # - Заголовок;
 * # - Подзаголовок;
 * # - Список тегов пользователей;
 * # - Список тегов приложений
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *text;
/** Test to see if @c text has been set. */
@property(nonatomic, readwrite) BOOL hasText;

/** По типам приложений */
// |typesArray| contains |KEYAPISMULTIAPPV1App_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;

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

/**
 * По статусам приложений.
 * Если переданы все типы, то фильтр игнорируется(так как нужно вернуть всё)
 **/
// |statusTypesArray| contains |KEYAPISMULTIAPPV1App_StatusType|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *statusTypesArray;
/** The number of items in @c statusTypesArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger statusTypesArray_Count;

/**
 * По пользовательским тегам.
 * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
 * # Диапазон: 0..20.
 * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *userTagsArray;
/** The number of items in @c userTagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger userTagsArray_Count;

/**
 * По тегам приложений.
 * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
 * # Диапазон: 0..20.
 * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *appTagsArray;
/** The number of items in @c appTagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger appTagsArray_Count;

@end

#pragma mark - KEYAPISMULTIAPPV1AppLiteFilter

typedef GPB_ENUM(KEYAPISMULTIAPPV1AppLiteFilter_FieldNumber) {
  KEYAPISMULTIAPPV1AppLiteFilter_FieldNumber_TypesArray = 1,
  KEYAPISMULTIAPPV1AppLiteFilter_FieldNumber_UserTagsArray = 2,
  KEYAPISMULTIAPPV1AppLiteFilter_FieldNumber_AppLiteTag = 3,
};

/**
 * Упрощённый фильтр по приложениям
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1AppLiteFilter : GPBMessage

/** По типам приложений */
// |typesArray| contains |KEYAPISMULTIAPPV1App_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;

/**
 * По тегам пользователя.
 * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
 * # Диапазон: 1..20.
 * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *userTagsArray;
/** The number of items in @c userTagsArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger userTagsArray_Count;

/** Тег для приложения */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1AppLiteFilter_AppLiteTag *appLiteTag;
/** Test to see if @c appLiteTag has been set. */
@property(nonatomic, readwrite) BOOL hasAppLiteTag;

@end

#pragma mark - KEYAPISMULTIAPPV1AppLiteFilter_AppLiteTag

typedef GPB_ENUM(KEYAPISMULTIAPPV1AppLiteFilter_AppLiteTag_FieldNumber) {
  KEYAPISMULTIAPPV1AppLiteFilter_AppLiteTag_FieldNumber_PlatformType = 1,
  KEYAPISMULTIAPPV1AppLiteFilter_AppLiteTag_FieldNumber_AppName = 2,
};

/**
 * Тег для приложения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1AppLiteFilter_AppLiteTag : GPBMessage

/** Тип платформы */
@property(nonatomic, readwrite) KEYAPISMULTIAPPV1App_PlatformType platformType;

/**
 * Название приложения, которое работает с данным сервисом.
 * Для МП и PWA значение "1".
 * # Паттерн: /^[0-9A-Z-]{1,19}$/
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *appName;
/** Test to see if @c appName has been set. */
@property(nonatomic, readwrite) BOOL hasAppName;

@end

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

#pragma mark - KEYAPISMULTIAPPV1AppPaging

typedef GPB_ENUM(KEYAPISMULTIAPPV1AppPaging_FieldNumber) {
  KEYAPISMULTIAPPV1AppPaging_FieldNumber_OrderByType = 1,
  KEYAPISMULTIAPPV1AppPaging_FieldNumber_DirectionType = 2,
  KEYAPISMULTIAPPV1AppPaging_FieldNumber_Limit = 3,
  KEYAPISMULTIAPPV1AppPaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация приложений
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1AppPaging : GPBMessage

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

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

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

#pragma mark - KEYAPISMULTIAPPV1AppLitePaging

typedef GPB_ENUM(KEYAPISMULTIAPPV1AppLitePaging_FieldNumber) {
  KEYAPISMULTIAPPV1AppLitePaging_FieldNumber_OrderByType = 1,
  KEYAPISMULTIAPPV1AppLitePaging_FieldNumber_DirectionType = 2,
  KEYAPISMULTIAPPV1AppLitePaging_FieldNumber_Limit = 3,
  KEYAPISMULTIAPPV1AppLitePaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация упрощенных приложений
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1AppLitePaging : GPBMessage

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

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

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

#pragma mark - KEYAPISMULTIAPPV1PostAppRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostAppRequest_FieldNumber) {
  KEYAPISMULTIAPPV1PostAppRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос сохранения приложения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PostAppRequest : GPBMessage

/** Приложение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1App *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISMULTIAPPV1PostAppResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostAppResponse_FieldNumber) {
  KEYAPISMULTIAPPV1PostAppResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1PostAppResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostAppResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1PostAppResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1PostAppResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1PostAppResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос сохранения приложения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PostAppResponse : GPBMessage

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

/** Приложение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1App *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1PostAppResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostAppResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1PostAppResponse_Error_FieldNumber_Validation = 1,
  KEYAPISMULTIAPPV1PostAppResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostAppResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1PostAppResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1PostAppResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISMULTIAPPV1PostAppResponse_Error_Reason_OneOfCase_Saving = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос получения приложения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppRequest : GPBMessage

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

@end

#pragma mark - KEYAPISMULTIAPPV1GetAppResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Приложение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1App *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос получения упрощённого приложения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppLiteRequest : GPBMessage

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

@end

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppLiteResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppLiteResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppLiteResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppLiteResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения упрощённого приложения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppLiteResponse : GPBMessage

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

/** Упрощённое приложение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1AppLite *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppLiteResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppLiteResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppListRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppListRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppListRequest_FieldNumber_Filter = 1,
  KEYAPISMULTIAPPV1GetAppListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppListRequest_Pagination_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

/** Пагинация */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1AppPaging *paging;

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppListResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppListResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppListResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppListResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Приложение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1App *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppListResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppListResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppListResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteListRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteListRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteListRequest_FieldNumber_Filter = 1,
  KEYAPISMULTIAPPV1GetAppLiteListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteListRequest_Pagination_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppLiteListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppLiteListRequest_Pagination_OneOfCase_Paging = 2,
};

/**
 * Запрос получения списка упрощённого приложений
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppLiteListRequest : GPBMessage

/** Упрощённый фильтр */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1AppLiteFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

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

/** Пагинация */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1AppLitePaging *paging;

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteListResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteListResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteListResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppLiteListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteListResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppLiteListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppLiteListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppLiteListResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения списка упрощённых приложений
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppLiteListResponse : GPBMessage

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

/** Упрощённое приложение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1AppLite *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteListResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteListResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteListResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppLiteListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppLiteListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteCountRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteCountRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteCountRequest_FieldNumber_Filter = 1,
};

/**
 * Запрос получения количества упрощённых приложений
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppLiteCountRequest : GPBMessage

/** Упрощённый фильтр */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1AppLiteFilter *filter;
/** Test to see if @c filter has been set. */
@property(nonatomic, readwrite) BOOL hasFilter;

@end

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteCountResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteCountResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteCountResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения количества упрощённых приложений
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppLiteCountResponse : GPBMessage

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

/** Всего упрощенных приложений */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppLiteCountResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteCountResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppLiteCountResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppLiteCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppCountRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCountRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISMULTIAPPV1GetAppCountResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCountResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppCountResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCountResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppCountResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Всего приложений */
@property(nonatomic, readwrite) int32_t data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppCountResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCountResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCountResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppCodeRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCodeRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppCodeRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISMULTIAPPV1GetAppCodeResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCodeResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppCodeResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppCodeResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCodeResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppCodeResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppCodeResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetAppCodeResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Код */
@property(nonatomic, readwrite, copy, null_resettable) NSString *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppCodeResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCodeResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetAppCodeResponse_Error_FieldNumber_Validation = 1,
  KEYAPISMULTIAPPV1GetAppCodeResponse_Error_FieldNumber_PartnerKeyDoesNotExist = 2,
  KEYAPISMULTIAPPV1GetAppCodeResponse_Error_FieldNumber_AppIsInactive = 3,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetAppCodeResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetAppCodeResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetAppCodeResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISMULTIAPPV1GetAppCodeResponse_Error_Reason_OneOfCase_PartnerKeyDoesNotExist = 2,
  KEYAPISMULTIAPPV1GetAppCodeResponse_Error_Reason_OneOfCase_AppIsInactive = 3,
};

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

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

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

/** Ошибка наличия публичного ключа у партнера */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetAppCodeResponse_Error_PartnerKeyDoesNotExist *partnerKeyDoesNotExist;

/** Приложение не в статусе ACTIVE */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetAppCodeResponse_Error_AppIsInactive *appIsInactive;

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetAppCodeResponse_Error_PartnerKeyDoesNotExist

/**
 * Ошибка наличия публичного ключа у партнера
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppCodeResponse_Error_PartnerKeyDoesNotExist : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1GetAppCodeResponse_Error_AppIsInactive

/**
 * Приложение не в статусе ACTIVE
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetAppCodeResponse_Error_AppIsInactive : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1DeleteAppRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeleteAppRequest_FieldNumber) {
  KEYAPISMULTIAPPV1DeleteAppRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос удаления приложения
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1DeleteAppRequest : GPBMessage

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

@end

#pragma mark - KEYAPISMULTIAPPV1DeleteAppResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeleteAppResponse_FieldNumber) {
  KEYAPISMULTIAPPV1DeleteAppResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeleteAppResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1DeleteAppResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1DeleteAppResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1DeleteAppResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeleteAppResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1DeleteAppResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeleteAppResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1DeleteAppResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1DeleteAppResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1ValidationError

typedef GPB_ENUM(KEYAPISMULTIAPPV1ValidationError_FieldNumber) {
  KEYAPISMULTIAPPV1ValidationError_FieldNumber_Path = 1,
  KEYAPISMULTIAPPV1ValidationError_FieldNumber_Message = 2,
};

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