// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/invoice/v1/keyapis_invoice_paymethod_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 KEYAPISINVOICEV1PayMethod;
@class KEYAPISINVOICEV1PostPayMethodBankcardResponse_Error;
@class KEYAPISINVOICEV1PostPayMethodBankcardResponse_RegisterData;
@class KEYAPISINVOICEV1PostPayMethodDefaultResponse_Error;
@class KEYAPISINVOICEV1PostPayMethodSbpResponse_Error;
@class KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData;
@class KEYAPISINVOICEV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - Enum KEYAPISINVOICEV1PayMethod_Type

/** Справочник типов способов оплаты */
typedef GPB_ENUM(KEYAPISINVOICEV1PayMethod_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.
   **/
  KEYAPISINVOICEV1PayMethod_Type_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISINVOICEV1PayMethod_Type_TypeUnknown = 0,

  /** Банковская карта */
  KEYAPISINVOICEV1PayMethod_Type_BankCard = 1,

  /** Сервис быстрых платежей */
  KEYAPISINVOICEV1PayMethod_Type_Sbp = 2,

  /** Связка Сбербанка */
  KEYAPISINVOICEV1PayMethod_Type_SberBind = 3,
};

GPBEnumDescriptor *KEYAPISINVOICEV1PayMethod_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 KEYAPISINVOICEV1PayMethod_Type_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISINVOICEV1PayMethod_CardType

/** Справочник типов банковских карт */
typedef GPB_ENUM(KEYAPISINVOICEV1PayMethod_CardType) {
  /**
   * 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.
   **/
  KEYAPISINVOICEV1PayMethod_CardType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISINVOICEV1PayMethod_CardType_CardTypeUnknown = 0,

  /** Карта VISA */
  KEYAPISINVOICEV1PayMethod_CardType_Visa = 1,

  /** Карта EuroCard/MasterCard */
  KEYAPISINVOICEV1PayMethod_CardType_EcMc = 2,

  /** Карта DinersClub */
  KEYAPISINVOICEV1PayMethod_CardType_Dcl = 3,

  /** Карта JCB */
  KEYAPISINVOICEV1PayMethod_CardType_Jcb = 4,

  /** Карта American Express */
  KEYAPISINVOICEV1PayMethod_CardType_Amex = 5,

  /** Платежная система "Мир" */
  KEYAPISINVOICEV1PayMethod_CardType_Mir = 6,
};

GPBEnumDescriptor *KEYAPISINVOICEV1PayMethod_CardType_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 KEYAPISINVOICEV1PayMethod_CardType_IsValidValue(int32_t value);

#pragma mark - Enum KEYAPISINVOICEV1PayMethod_StatusType

/** Статус способа оплаты */
typedef GPB_ENUM(KEYAPISINVOICEV1PayMethod_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.
   **/
  KEYAPISINVOICEV1PayMethod_StatusType_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
  /** Значение не указано */
  KEYAPISINVOICEV1PayMethod_StatusType_StatusTypeUnknown = 0,

  /** Исправный */
  KEYAPISINVOICEV1PayMethod_StatusType_Valid = 1,

  /** Истекший */
  KEYAPISINVOICEV1PayMethod_StatusType_Expired = 2,

  /** Заблокированный */
  KEYAPISINVOICEV1PayMethod_StatusType_Blocked = 3,
};

GPBEnumDescriptor *KEYAPISINVOICEV1PayMethod_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 KEYAPISINVOICEV1PayMethod_StatusType_IsValidValue(int32_t value);

#pragma mark - KEYAPISINVOICEV1KeyapisInvoicePaymethodV1Root

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

#pragma mark - KEYAPISINVOICEV1PayMethod

typedef GPB_ENUM(KEYAPISINVOICEV1PayMethod_FieldNumber) {
  KEYAPISINVOICEV1PayMethod_FieldNumber_PayMethodId = 1,
  KEYAPISINVOICEV1PayMethod_FieldNumber_UserId = 2,
  KEYAPISINVOICEV1PayMethod_FieldNumber_Type = 3,
  KEYAPISINVOICEV1PayMethod_FieldNumber_IsActive = 4,
  KEYAPISINVOICEV1PayMethod_FieldNumber_IsDefault = 5,
  KEYAPISINVOICEV1PayMethod_FieldNumber_PayMethodContact = 6,
  KEYAPISINVOICEV1PayMethod_FieldNumber_PayMethodDescription = 7,
  KEYAPISINVOICEV1PayMethod_FieldNumber_PayMethodAlias = 8,
  KEYAPISINVOICEV1PayMethod_FieldNumber_CardType = 9,
  KEYAPISINVOICEV1PayMethod_FieldNumber_MaskedNum = 10,
  KEYAPISINVOICEV1PayMethod_FieldNumber_BankName = 11,
  KEYAPISINVOICEV1PayMethod_FieldNumber_IsAuth = 12,
  KEYAPISINVOICEV1PayMethod_FieldNumber_StatusType = 13,
  KEYAPISINVOICEV1PayMethod_FieldNumber_RegisterAt = 14,
};

/**
 * Способ оплаты
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PayMethod : GPBMessage

/** Идентификатор способа оплаты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *payMethodId;

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

/** Тип способа оплаты */
@property(nonatomic, readwrite) KEYAPISINVOICEV1PayMethod_Type type;

/** Признак активной записи */
@property(nonatomic, readwrite) BOOL isActive;

/** Способ оплаты по умолчанию */
@property(nonatomic, readwrite) BOOL isDefault;

/** Мобильный телефон, на который будут отправляться уведомления */
@property(nonatomic, readwrite, copy, null_resettable) NSString *payMethodContact;

/** Описание способа оплаты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *payMethodDescription;

/** Псевдоним способа оплаты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *payMethodAlias;

/** Тип банковской карты */
@property(nonatomic, readwrite) KEYAPISINVOICEV1PayMethod_CardType cardType;

/** Маскированный номер карты или идентификатора привязки счета СБП */
@property(nonatomic, readwrite, copy, null_resettable) NSString *maskedNum;

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

/** Признак авторизации БК */
@property(nonatomic, readwrite) BOOL isAuth;

/** Статус способа оплаты */
@property(nonatomic, readwrite) KEYAPISINVOICEV1PayMethod_StatusType statusType;

/**
 * Дата регистрации способа оплаты.
 * # Тип: DateTime
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *registerAt;
/** Test to see if @c registerAt has been set. */
@property(nonatomic, readwrite) BOOL hasRegisterAt;

@end

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

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

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

#pragma mark - KEYAPISINVOICEV1GetPayMethodListRequest

typedef GPB_ENUM(KEYAPISINVOICEV1GetPayMethodListRequest_FieldNumber) {
  KEYAPISINVOICEV1GetPayMethodListRequest_FieldNumber_UserId = 1,
};

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

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

@end

#pragma mark - KEYAPISINVOICEV1GetPayMethodListResponse

typedef GPB_ENUM(KEYAPISINVOICEV1GetPayMethodListResponse_FieldNumber) {
  KEYAPISINVOICEV1GetPayMethodListResponse_FieldNumber_DataArray = 1,
};

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

/** Способы оплаты */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISINVOICEV1PayMethod*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - KEYAPISINVOICEV1DeletePayMethodRequest

typedef GPB_ENUM(KEYAPISINVOICEV1DeletePayMethodRequest_FieldNumber) {
  KEYAPISINVOICEV1DeletePayMethodRequest_FieldNumber_PayMethodId = 1,
};

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

/** Идентификатор способа оплаты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *payMethodId;

@end

#pragma mark - KEYAPISINVOICEV1DeletePayMethodResponse

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

@end

#pragma mark - KEYAPISINVOICEV1PostPayMethodDefaultRequest

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodDefaultRequest_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodDefaultRequest_FieldNumber_PayMethodId = 1,
};

/**
 * Запрос установки способа оплаты по умолчанию
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodDefaultRequest : GPBMessage

/** Идентификатор способа оплаты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *payMethodId;

@end

#pragma mark - KEYAPISINVOICEV1PostPayMethodDefaultResponse

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodDefaultResponse_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodDefaultResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodDefaultResponse_Type_OneOfCase) {
  KEYAPISINVOICEV1PostPayMethodDefaultResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISINVOICEV1PostPayMethodDefaultResponse_Type_OneOfCase_Error = 1,
};

/**
 * Ответ на запрос установки способа оплаты по умолчанию
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodDefaultResponse : GPBMessage

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

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

@end

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

#pragma mark - KEYAPISINVOICEV1PostPayMethodDefaultResponse_Error

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodDefaultResponse_Error_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodDefaultResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodDefaultResponse_Error_Reason_OneOfCase) {
  KEYAPISINVOICEV1PostPayMethodDefaultResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISINVOICEV1PostPayMethodDefaultResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISINVOICEV1PostPayMethodBankcardRequest

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodBankcardRequest_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodBankcardRequest_FieldNumber_URLReturnOk = 1,
  KEYAPISINVOICEV1PostPayMethodBankcardRequest_FieldNumber_URLReturnNo = 2,
};

/**
 * Запрос на добавления способа оплаты с типом "Банковская карта"
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodBankcardRequest : GPBMessage

/** URL для переадресации абонента в случае успешной регистрации карты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *URLReturnOk;

/** URL для переадресации абонента в случае неуспешной регистрации карты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *URLReturnNo;

@end

#pragma mark - KEYAPISINVOICEV1PostPayMethodBankcardResponse

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodBankcardResponse_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_FieldNumber_Error = 1,
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_FieldNumber_Data_p = 2,
};

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodBankcardResponse_Type_OneOfCase) {
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_Type_OneOfCase_Error = 1,
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_Type_OneOfCase_Data_p = 2,
};

/**
 * Ответ на запрос добавления способа оплаты с типом "Банковская карта"
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodBankcardResponse : GPBMessage

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

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

/** Данные регистрации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISINVOICEV1PostPayMethodBankcardResponse_RegisterData *data_p;

@end

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

#pragma mark - KEYAPISINVOICEV1PostPayMethodBankcardResponse_Error

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodBankcardResponse_Error_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodBankcardResponse_Error_Reason_OneOfCase) {
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISINVOICEV1PostPayMethodBankcardResponse_RegisterData

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodBankcardResponse_RegisterData_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_RegisterData_FieldNumber_ReqId = 1,
  KEYAPISINVOICEV1PostPayMethodBankcardResponse_RegisterData_FieldNumber_URLRegistration = 2,
};

/**
 * Данные регистрации
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodBankcardResponse_RegisterData : GPBMessage

/** Идентификатор запроса на регистрацию */
@property(nonatomic, readwrite, copy, null_resettable) NSString *reqId;

/** Ссылка для переадресации клиента для продолжения регистрации */
@property(nonatomic, readwrite, copy, null_resettable) NSString *URLRegistration;

@end

#pragma mark - KEYAPISINVOICEV1PostPayMethodSbpRequest

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodSbpRequest_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodSbpRequest_FieldNumber_URLReturnOk = 1,
  KEYAPISINVOICEV1PostPayMethodSbpRequest_FieldNumber_URLReturnNo = 2,
};

/**
 * Запрос на добавления способа оплаты с типом "СБП"
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodSbpRequest : GPBMessage

/** URL для переадресации абонента в случае успешной регистрации карты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *URLReturnOk;

/** URL для переадресации абонента в случае неуспешной регистрации карты */
@property(nonatomic, readwrite, copy, null_resettable) NSString *URLReturnNo;

@end

#pragma mark - KEYAPISINVOICEV1PostPayMethodSbpResponse

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodSbpResponse_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodSbpResponse_FieldNumber_Error = 1,
  KEYAPISINVOICEV1PostPayMethodSbpResponse_FieldNumber_Data_p = 2,
};

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodSbpResponse_Type_OneOfCase) {
  KEYAPISINVOICEV1PostPayMethodSbpResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISINVOICEV1PostPayMethodSbpResponse_Type_OneOfCase_Error = 1,
  KEYAPISINVOICEV1PostPayMethodSbpResponse_Type_OneOfCase_Data_p = 2,
};

/**
 * Ответ на запрос добавления способа оплаты с типом "СБП"
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodSbpResponse : GPBMessage

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

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

/** Данные регистрации */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData *data_p;

@end

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

#pragma mark - KEYAPISINVOICEV1PostPayMethodSbpResponse_Error

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodSbpResponse_Error_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodSbpResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodSbpResponse_Error_Reason_OneOfCase) {
  KEYAPISINVOICEV1PostPayMethodSbpResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISINVOICEV1PostPayMethodSbpResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData

typedef GPB_ENUM(KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData_FieldNumber) {
  KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData_FieldNumber_ReqId = 1,
  KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData_FieldNumber_URLRegistration = 2,
  KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData_FieldNumber_SbpPayload = 3,
};

/**
 * Данные регистрации
 **/
GPB_FINAL @interface KEYAPISINVOICEV1PostPayMethodSbpResponse_RegisterData : GPBMessage

/** Идентификатор запроса на регистрацию */
@property(nonatomic, readwrite, copy, null_resettable) NSString *reqId;

/** Ссылка для переадресации клиента для продолжения регистрации */
@property(nonatomic, readwrite, copy, null_resettable) NSString *URLRegistration;

/** Содержимое QR кода для регистрации платежного СБП-токена */
@property(nonatomic, readwrite, copy, null_resettable) NSString *sbpPayload;

@end

#pragma mark - KEYAPISINVOICEV1ValidationError

typedef GPB_ENUM(KEYAPISINVOICEV1ValidationError_FieldNumber) {
  KEYAPISINVOICEV1ValidationError_FieldNumber_Path = 1,
  KEYAPISINVOICEV1ValidationError_FieldNumber_Message = 2,
};

/**
 * Ошибка валидации
 **/
GPB_FINAL @interface KEYAPISINVOICEV1ValidationError : 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
