// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/multiapp/v1/keyapis_multiapp_partner_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 KEYAPISMULTIAPPV1DeletePartnerResponse_Error;
@class KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists;
@class KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error;
@class KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied;
@class KEYAPISMULTIAPPV1GetPartnerCountResponse_Error;
@class KEYAPISMULTIAPPV1GetPartnerListResponse_Error;
@class KEYAPISMULTIAPPV1GetPartnerResponse_Error;
@class KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error;
@class KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError;
@class KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied;
@class KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported;
@class KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError;
@class KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError;
@class KEYAPISMULTIAPPV1Partner;
@class KEYAPISMULTIAPPV1PartnerFilter;
@class KEYAPISMULTIAPPV1PartnerPaging;
@class KEYAPISMULTIAPPV1Partner_SavingError;
@class KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists;
@class KEYAPISMULTIAPPV1Partner_SavingError_Conflict;
@class KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted;
@class KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error;
@class KEYAPISMULTIAPPV1PostPartnerResponse_Error;
@class KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation;
@class KEYAPISMULTIAPPV1Token;
@class KEYAPISMULTIAPPV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISMULTIAPPV1PartnerPaging_OrderByType

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

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

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

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

GPBEnumDescriptor *KEYAPISMULTIAPPV1PartnerPaging_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 KEYAPISMULTIAPPV1PartnerPaging_OrderByType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISMULTIAPPV1PartnerPaging_DirectionType

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

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

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

GPBEnumDescriptor *KEYAPISMULTIAPPV1PartnerPaging_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 KEYAPISMULTIAPPV1PartnerPaging_DirectionType_IsValidValue(int32_t value);

#pragma mark - KEYAPISMULTIAPPV1KeyapisMultiappPartnerV1Root

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

#pragma mark - KEYAPISMULTIAPPV1Partner

typedef GPB_ENUM(KEYAPISMULTIAPPV1Partner_FieldNumber) {
  KEYAPISMULTIAPPV1Partner_FieldNumber_Id_p = 1,
  KEYAPISMULTIAPPV1Partner_FieldNumber_Name = 2,
  KEYAPISMULTIAPPV1Partner_FieldNumber_ApiKey = 3,
  KEYAPISMULTIAPPV1Partner_FieldNumber_PublicKey = 4,
  KEYAPISMULTIAPPV1Partner_FieldNumber_CreatedAt = 5,
  KEYAPISMULTIAPPV1Partner_FieldNumber_ChangedAt = 6,
  KEYAPISMULTIAPPV1Partner_FieldNumber_DeletedAt = 7,
  KEYAPISMULTIAPPV1Partner_FieldNumber_ApiKeyHash = 8,
  KEYAPISMULTIAPPV1Partner_FieldNumber_ApiKeyMasked = 9,
};

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

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

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

/**
 * API ключ.
 * # Тип: Guid?
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *apiKey;
/** Test to see if @c apiKey has been set. */
@property(nonatomic, readwrite) BOOL hasApiKey;

/** Публичный ключ */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *publicKey;
/** Test to see if @c publicKey has been set. */
@property(nonatomic, readwrite) BOOL hasPublicKey;

/**
 * Дата создания партнера.
 * # Тип: 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;

/** Хэш от API ключа */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *apiKeyHash;
/** Test to see if @c apiKeyHash has been set. */
@property(nonatomic, readwrite) BOOL hasApiKeyHash;

/** API ключ маскированный */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *apiKeyMasked;
/** Test to see if @c apiKeyMasked has been set. */
@property(nonatomic, readwrite) BOOL hasApiKeyMasked;

@end

#pragma mark - KEYAPISMULTIAPPV1Partner_SavingError

typedef GPB_ENUM(KEYAPISMULTIAPPV1Partner_SavingError_FieldNumber) {
  KEYAPISMULTIAPPV1Partner_SavingError_FieldNumber_Conflict = 1,
  KEYAPISMULTIAPPV1Partner_SavingError_FieldNumber_ApiKeyExists = 2,
  KEYAPISMULTIAPPV1Partner_SavingError_FieldNumber_PartnerIsDeleted = 3,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1Partner_SavingError_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1Partner_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1Partner_SavingError_Reason_OneOfCase_Conflict = 1,
  KEYAPISMULTIAPPV1Partner_SavingError_Reason_OneOfCase_ApiKeyExists = 2,
  KEYAPISMULTIAPPV1Partner_SavingError_Reason_OneOfCase_PartnerIsDeleted = 3,
};

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

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

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

/** API-key уже существует */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists *apiKeyExists;

/** Партнёр удалён */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted *partnerIsDeleted;

@end

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

#pragma mark - KEYAPISMULTIAPPV1Partner_SavingError_Conflict

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

@end

#pragma mark - KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists

/**
 * API-key уже существует.
 * Может появиться только в случае создания партнера.
 * Причины:
 * - В базе уже хранится такой api_key, он должен быть уникален для каждого партнера
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1Partner_SavingError_ApiKeyExists : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted

/**
 * Партнёр удалён.
 * Причины:
 * - Переданный публичный ключ принадлежит удалённому партнеру
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1Partner_SavingError_PartnerIsDeleted : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1Token

typedef GPB_ENUM(KEYAPISMULTIAPPV1Token_FieldNumber) {
  KEYAPISMULTIAPPV1Token_FieldNumber_IdToken = 1,
  KEYAPISMULTIAPPV1Token_FieldNumber_AccessToken = 2,
  KEYAPISMULTIAPPV1Token_FieldNumber_TypeOfAccessToken = 3,
  KEYAPISMULTIAPPV1Token_FieldNumber_RefreshToken = 4,
  KEYAPISMULTIAPPV1Token_FieldNumber_ExpiresIn = 5,
};

/**
 * Ответ на запрос токена
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1Token : GPBMessage

/** ID токен в формате nested JWT */
@property(nonatomic, readwrite, copy, null_resettable) NSString *idToken;

/** Авторизационный токен */
@property(nonatomic, readwrite, copy, null_resettable) NSString *accessToken;

/** Тип авторизационного токена */
@property(nonatomic, readwrite, copy, null_resettable) NSString *typeOfAccessToken;

/** Токен, используемый для получения нового Access Token после истечения срока действия текущего токена доступа */
@property(nonatomic, readwrite, copy, null_resettable) NSString *refreshToken;

/** Время (в секундах), через которое истечет срок действия Access Token */
@property(nonatomic, readwrite) int32_t expiresIn;

@end

#pragma mark - KEYAPISMULTIAPPV1PartnerFilter

typedef GPB_ENUM(KEYAPISMULTIAPPV1PartnerFilter_FieldNumber) {
  KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_Text = 1,
  KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_BeginChangedAt = 2,
  KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_EndChangedAt = 3,
  KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_TemplateIdsArray = 4,
  KEYAPISMULTIAPPV1PartnerFilter_FieldNumber_IsShowDeleted = 5,
};

/**
 * Фильтр партнеров
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PartnerFilter : 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;

/** От даты обновления партнера включительно (больше или равно) */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *beginChangedAt;
/** Test to see if @c beginChangedAt has been set. */
@property(nonatomic, readwrite) BOOL hasBeginChangedAt;

/** До даты обновления партнера (меньше) */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *endChangedAt;
/** Test to see if @c endChangedAt has been set. */
@property(nonatomic, readwrite) BOOL hasEndChangedAt;

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

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

@end

#pragma mark - KEYAPISMULTIAPPV1PartnerPaging

typedef GPB_ENUM(KEYAPISMULTIAPPV1PartnerPaging_FieldNumber) {
  KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_OrderByType = 1,
  KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_DirectionType = 2,
  KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_Limit = 3,
  KEYAPISMULTIAPPV1PartnerPaging_FieldNumber_Offset = 4,
};

/**
 * Пагинация партнеров
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PartnerPaging : GPBMessage

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

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

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

#pragma mark - KEYAPISMULTIAPPV1PostPartnerRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerRequest_FieldNumber) {
  KEYAPISMULTIAPPV1PostPartnerRequest_FieldNumber_Data_p = 1,
};

/**
 * Запрос сохранения партнера
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PostPartnerRequest : GPBMessage

/** Партнер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Partner *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISMULTIAPPV1PostPartnerResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerResponse_FieldNumber) {
  KEYAPISMULTIAPPV1PostPartnerResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1PostPartnerResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1PostPartnerResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1PostPartnerResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1PostPartnerResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Партнер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Partner *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1PostPartnerResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_FieldNumber_Validation = 1,
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_FieldNumber_Saving = 2,
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_FieldNumber_MissingApiKeyOnCreation = 3,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_Reason_OneOfCase_Saving = 2,
  KEYAPISMULTIAPPV1PostPartnerResponse_Error_Reason_OneOfCase_MissingApiKeyOnCreation = 3,
};

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

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

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

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

/** Api-Key обязателен при создании партнера */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation *missingApiKeyOnCreation;

@end

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

#pragma mark - KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation

/**
 * Api-Key обязателен при создании партнера
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PostPartnerResponse_Error_MissingApiKeyOnCreation : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Партнер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Partner *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerListRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerListRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerListRequest_FieldNumber_Filter = 1,
  KEYAPISMULTIAPPV1GetPartnerListRequest_FieldNumber_Paging = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerListRequest_Pagination_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerListRequest_Pagination_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerListRequest_Pagination_OneOfCase_Paging = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerListResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerListResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerListResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerListResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerListResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerListResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerListResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Партнер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Partner *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerListResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerListResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerListResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerListResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerListResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerListResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerCountRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerCountRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerCountRequest_FieldNumber_Filter = 1,
};

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

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

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerCountResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerCountResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerCountResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerCountResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerCountResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerCountResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerCountResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerCountResponse_Type_OneOfCase_Error = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerCountResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerCountResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerCountResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerCountResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerCountResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerCountResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerTokenRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerTokenRequest_FieldNumber_Code = 1,
  KEYAPISMULTIAPPV1GetPartnerTokenRequest_FieldNumber_Response = 2,
  KEYAPISMULTIAPPV1GetPartnerTokenRequest_FieldNumber_Nonce = 3,
};

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

/**
 * Код.
 * # Тип: Guid
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *code;

/**
 * Тип ответа.
 * # Допустимые значения: "id_token", "token", "id_token token"
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *response;

/** Ваучер */
@property(nonatomic, readwrite, copy, null_resettable) NSString *nonce;

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerTokenResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Токен */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Token *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_Validation = 1,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_UserNotFound = 2,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_TokenGenerationError = 3,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_CodeNotFoundOrExpiredError = 4,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_ResponseTypeIsNotSupported = 5,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_FieldNumber_PermissionDenied = 6,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase_UserNotFound = 2,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase_TokenGenerationError = 3,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase_CodeNotFoundOrExpiredError = 4,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase_ResponseTypeIsNotSupported = 5,
  KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_Reason_OneOfCase_PermissionDenied = 6,
};

/**
 * Ошибка
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error : GPBMessage

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

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

/** Ошибка: пользователь не найден */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError *userNotFound;

/** Ошибка: формирования токена */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError *tokenGenerationError;

/** Ошибка: некорректный код */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError *codeNotFoundOrExpiredError;

/** Переданный тип ответа не поддерживается */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported *responseTypeIsNotSupported;

/** Доступ запрещен */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied *permissionDenied;

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError

/**
 * Данные пользователя для формирования идентификационного токена не найдены.
 * Причины:
 * - Пользователь с таким идентификатором отсутсвует в БД ключа;
 * - Ошибка взаимодействия с сервисом Домохозяйств
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_UserNotFoundError : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError

/**
 * Ошибка формирования токена.
 * Причины:
 * - Ошибка в сервисе KMS.
 * - Ошибка в сервисе Identity
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_TokenGenerationError : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError

/**
 * Некорректный код.
 * Причины:
 * - Передан неверный код;
 * - Превышен допустимый временной интервал между запросом на формирование кода и запросом на получение идентификационного токена
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_CodeNotFoundOrExpiredError : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported

/**
 * Переданный тип ответа не поддерживается
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_ResponseTypeIsNotSupported : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied

/**
 * Доступ запрещен.
 * Причины:
 * - У запрашивающего приложения нет разрешения на выбранный тип ответа
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerTokenResponse_Error_PermissionDenied : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest_FieldNumber) {
  KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest_FieldNumber_PublicKey = 1,
};

/**
 * Запрос сохранения публичного ключа партнера
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PostPartnerPublicKeyRequest : GPBMessage

/** Публичный ключ */
@property(nonatomic, readwrite, copy, null_resettable) NSString *publicKey;

@end

#pragma mark - KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_FieldNumber) {
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос сохранения публичного ключа партнера
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse : GPBMessage

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

/** Партнер */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1Partner *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_FieldNumber_Validation = 1,
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISMULTIAPPV1PostPartnerPublicKeyResponse_Error_Reason_OneOfCase_Saving = 2,
};

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

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

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

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1DeletePartnerRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeletePartnerRequest_FieldNumber) {
  KEYAPISMULTIAPPV1DeletePartnerRequest_FieldNumber_Id_p = 1,
};

/**
 * Запрос на удаление партнёра
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1DeletePartnerRequest : GPBMessage

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

@end

#pragma mark - KEYAPISMULTIAPPV1DeletePartnerResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeletePartnerResponse_FieldNumber) {
  KEYAPISMULTIAPPV1DeletePartnerResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeletePartnerResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1DeletePartnerResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1DeletePartnerResponse_Type_OneOfCase_Error = 1,
};

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

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

/** Ошибка при удалении */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1DeletePartnerResponse_Error *error;

@end

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

#pragma mark - KEYAPISMULTIAPPV1DeletePartnerResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeletePartnerResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1DeletePartnerResponse_Error_FieldNumber_Validation = 1,
  KEYAPISMULTIAPPV1DeletePartnerResponse_Error_FieldNumber_LinkedAppExists = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1DeletePartnerResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1DeletePartnerResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1DeletePartnerResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISMULTIAPPV1DeletePartnerResponse_Error_Reason_OneOfCase_LinkedAppExists = 2,
};

/**
 * Ошибка удаления партнёра
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1DeletePartnerResponse_Error : GPBMessage

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

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

/** У партнера есть хотя бы одно приложение */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists *linkedAppExists;

@end

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

#pragma mark - KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists

/**
 * У партнера есть хотя бы одно приложение
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1DeletePartnerResponse_Error_LinkedAppExists : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest_FieldNumber_Orpon = 1,
};

/**
 * Запрос получения адреса по ОРПОНу
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerAddressOrponRequest : GPBMessage

/**
 * ОРПОН.
 * # Диапазон: 1..9223372036854775807
 **/
@property(nonatomic, readwrite) int64_t orpon;

@end

#pragma mark - KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_FieldNumber_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Type_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос получения адреса по ОРПОНу
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse : GPBMessage

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

/** Адрес */
@property(nonatomic, readwrite, copy, null_resettable) NSString *data_p;

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

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_FieldNumber) {
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_FieldNumber_Validation = 1,
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_FieldNumber_PermissionDenied = 2,
};

typedef GPB_ENUM(KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_Reason_OneOfCase) {
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_Reason_OneOfCase_PermissionDenied = 2,
};

/**
 * Ошибка
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error : GPBMessage

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

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

/** Доступ запрещен */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied *permissionDenied;

@end

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

#pragma mark - KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied

/**
 * Доступ запрещен.
 * Причины:
 * - У партнера нет разрешения на переданный ОРПОН
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1GetPartnerAddressOrponResponse_Error_PermissionDenied : GPBMessage

@end

#pragma mark - KEYAPISMULTIAPPV1IdTokenPayload

typedef GPB_ENUM(KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber) {
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Jti = 1,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Nonce = 2,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Sub = 3,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Role = 4,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_PhoneNumber = 5,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Email = 6,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Orpon = 7,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Room = 8,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_CompanyId = 9,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_CompanyName = 10,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_AuthTime = 11,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Exp = 12,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Iss = 13,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_Aud = 14,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_AppId = 15,
  KEYAPISMULTIAPPV1IdTokenPayload_FieldNumber_KladrId = 16,
};

/**
 * Идентификационный токен
 **/
GPB_FINAL @interface KEYAPISMULTIAPPV1IdTokenPayload : GPBMessage

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

/** Ваучер */
@property(nonatomic, readwrite, copy, null_resettable) NSString *nonce;

/** Идентификатор пользователя, для которого выдан токен */
@property(nonatomic, readwrite, copy, null_resettable) NSString *sub;

/** Роль */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *role;
/** Test to see if @c role has been set. */
@property(nonatomic, readwrite) BOOL hasRole;

/** Номер телефона */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *phoneNumber;
/** Test to see if @c phoneNumber has been set. */
@property(nonatomic, readwrite) BOOL hasPhoneNumber;

/** Электронная почта */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *email;
/** Test to see if @c email has been set. */
@property(nonatomic, readwrite) BOOL hasEmail;

/** Идентифкатор ОРПОН */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *orpon;
/** Test to see if @c orpon has been set. */
@property(nonatomic, readwrite) BOOL hasOrpon;

/** Номер квартиры */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *room;
/** Test to see if @c room has been set. */
@property(nonatomic, readwrite) BOOL hasRoom;

/** Идентифкатор компании */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *companyId;
/** Test to see if @c companyId has been set. */
@property(nonatomic, readwrite) BOOL hasCompanyId;

/** Наименование компании */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *companyName;
/** Test to see if @c companyName has been set. */
@property(nonatomic, readwrite) BOOL hasCompanyName;

/** Время авторизации пользователя unix timestamp */
@property(nonatomic, readwrite, copy, null_resettable) NSString *authTime;

/** Срок истечения действия токен unix timestamp */
@property(nonatomic, readwrite, copy, null_resettable) NSString *exp;

/** Сервис, выдавший токен */
@property(nonatomic, readwrite, copy, null_resettable) NSString *iss;

/** Url сервиса, для которого выпустили токен */
@property(nonatomic, readwrite, copy, null_resettable) NSString *aud;

/** Идентификатор приложения партнёра */
@property(nonatomic, readwrite, copy, null_resettable) NSString *appId;

/** КЛАДР */
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *kladrId;
/** Test to see if @c kladrId has been set. */
@property(nonatomic, readwrite) BOOL hasKladrId;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
