// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/omnichat/v1/keyapis_omnichat_credentials_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 KEYAPISOMNICHATV1ClientMetadata;
@class KEYAPISOMNICHATV1Credentials;
@class KEYAPISOMNICHATV1PostCredentialsResponse_Error;
@class KEYAPISOMNICHATV1PostCredentialsResponse_Error_AppNameUnsupported;
@class KEYAPISOMNICHATV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - KEYAPISOMNICHATV1KeyapisOmnichatCredentialsV1Root

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

#pragma mark - KEYAPISOMNICHATV1ClientMetadata

typedef GPB_ENUM(KEYAPISOMNICHATV1ClientMetadata_FieldNumber) {
  KEYAPISOMNICHATV1ClientMetadata_FieldNumber_AppVersion = 1,
  KEYAPISOMNICHATV1ClientMetadata_FieldNumber_OsVersion = 2,
  KEYAPISOMNICHATV1ClientMetadata_FieldNumber_DeviceModel = 3,
  KEYAPISOMNICHATV1ClientMetadata_FieldNumber_AppName = 4,
};

/**
 * Метаданные клиента
 **/
GPB_FINAL @interface KEYAPISOMNICHATV1ClientMetadata : GPBMessage

/**
 * Версия приложения.
 * # Диапазон: 1..128
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *appVersion;
/** Test to see if @c appVersion has been set. */
@property(nonatomic, readwrite) BOOL hasAppVersion;

/**
 * Версия операционной системы.
 * # Диапазон: 1..128
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *osVersion;
/** Test to see if @c osVersion has been set. */
@property(nonatomic, readwrite) BOOL hasOsVersion;

/**
 * Модель устройства.
 * # Диапазон: 1..128
 **/
@property(nonatomic, readwrite, strong, null_resettable) GPBStringValue *deviceModel;
/** Test to see if @c deviceModel has been set. */
@property(nonatomic, readwrite) BOOL hasDeviceModel;

/**
 * Название приложения.
 * Для разных приложений мы можем использовать разные tenantId и channel_id, сопоставление хранится в конфиге сервиса
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *appName;

@end

#pragma mark - KEYAPISOMNICHATV1Credentials

typedef GPB_ENUM(KEYAPISOMNICHATV1Credentials_FieldNumber) {
  KEYAPISOMNICHATV1Credentials_FieldNumber_Payload = 1,
  KEYAPISOMNICHATV1Credentials_FieldNumber_Hash_p = 2,
  KEYAPISOMNICHATV1Credentials_FieldNumber_ChannelId = 3,
};

/**
 * Реквезиты для авторизации в omnichat
 **/
GPB_FINAL @interface KEYAPISOMNICHATV1Credentials : GPBMessage

/**
 * Закодированные в base64 клиентские данные.
 * Состав: appVersion, os, deviceModel, tenantId, login, phone, email, group_id, address, лицевые счета
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *payload;

/** HMAC-подпись от payload (клиентских данных) */
@property(nonatomic, readwrite, copy, null_resettable) NSString *hash_p;

/**
 * Идентификатор канала в omnichat.
 * Определяется исходя из типа приложения
 **/
@property(nonatomic, readwrite) int32_t channelId;

@end

#pragma mark - KEYAPISOMNICHATV1PostCredentialsRequest

typedef GPB_ENUM(KEYAPISOMNICHATV1PostCredentialsRequest_FieldNumber) {
  KEYAPISOMNICHATV1PostCredentialsRequest_FieldNumber_ClientMetadata = 1,
};

/**
 * Запрос реквезитов для авторизации в Omnichat
 **/
GPB_FINAL @interface KEYAPISOMNICHATV1PostCredentialsRequest : GPBMessage

/** Метаданные клиента */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISOMNICHATV1ClientMetadata *clientMetadata;
/** Test to see if @c clientMetadata has been set. */
@property(nonatomic, readwrite) BOOL hasClientMetadata;

@end

#pragma mark - KEYAPISOMNICHATV1PostCredentialsResponse

typedef GPB_ENUM(KEYAPISOMNICHATV1PostCredentialsResponse_FieldNumber) {
  KEYAPISOMNICHATV1PostCredentialsResponse_FieldNumber_Data_p = 1,
  KEYAPISOMNICHATV1PostCredentialsResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISOMNICHATV1PostCredentialsResponse_Type_OneOfCase) {
  KEYAPISOMNICHATV1PostCredentialsResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISOMNICHATV1PostCredentialsResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISOMNICHATV1PostCredentialsResponse_Type_OneOfCase_Error = 2,
};

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

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

/** Реквизиты */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISOMNICHATV1Credentials *data_p;

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

@end

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

#pragma mark - KEYAPISOMNICHATV1PostCredentialsResponse_Error

typedef GPB_ENUM(KEYAPISOMNICHATV1PostCredentialsResponse_Error_FieldNumber) {
  KEYAPISOMNICHATV1PostCredentialsResponse_Error_FieldNumber_Validation = 1,
  KEYAPISOMNICHATV1PostCredentialsResponse_Error_FieldNumber_AppNameUnsupported = 2,
};

typedef GPB_ENUM(KEYAPISOMNICHATV1PostCredentialsResponse_Error_Reason_OneOfCase) {
  KEYAPISOMNICHATV1PostCredentialsResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISOMNICHATV1PostCredentialsResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISOMNICHATV1PostCredentialsResponse_Error_Reason_OneOfCase_AppNameUnsupported = 2,
};

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

@property(nonatomic, readonly) KEYAPISOMNICHATV1PostCredentialsResponse_Error_Reason_OneOfCase reasonOneOfCase;

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

/** Переданное название приложения не поддерживается */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISOMNICHATV1PostCredentialsResponse_Error_AppNameUnsupported *appNameUnsupported;

@end

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

#pragma mark - KEYAPISOMNICHATV1PostCredentialsResponse_Error_AppNameUnsupported

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

@end

#pragma mark - KEYAPISOMNICHATV1ValidationError

typedef GPB_ENUM(KEYAPISOMNICHATV1ValidationError_FieldNumber) {
  KEYAPISOMNICHATV1ValidationError_FieldNumber_Path = 1,
  KEYAPISOMNICHATV1ValidationError_FieldNumber_Message = 2,
};

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