// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/vc/v1/keyapis_vc_company_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 KEYAPISVCV1PostCompanyImpersonationResponse_CompanyImpersonation;
@class KEYAPISVCV1PostCompanyImpersonationResponse_Error;
@class KEYAPISVCV1PostCompanyImpersonationResponse_Error_OwnerNotFound;
@class KEYAPISVCV1PostCompanyImpersonationResponse_Error_UserServiceError;
@class KEYAPISVCV1PostCompanyImpersonationResponse_Error_VcfrontServiceError;
@class KEYAPISVCV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - KEYAPISVCV1KeyapisVcCompanyV1Root

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

#pragma mark - KEYAPISVCV1PostCompanyImpersonationRequest

typedef GPB_ENUM(KEYAPISVCV1PostCompanyImpersonationRequest_FieldNumber) {
  KEYAPISVCV1PostCompanyImpersonationRequest_FieldNumber_CompanyId = 1,
};

/**
 * Запрос генерации имперсонационной ссылки для компании
 **/
GPB_FINAL @interface KEYAPISVCV1PostCompanyImpersonationRequest : GPBMessage

/**
 * Идентификатор компании.
 * # Диапазон: 1..2147483647
 **/
@property(nonatomic, readwrite) int32_t companyId;

@end

#pragma mark - KEYAPISVCV1PostCompanyImpersonationResponse

typedef GPB_ENUM(KEYAPISVCV1PostCompanyImpersonationResponse_FieldNumber) {
  KEYAPISVCV1PostCompanyImpersonationResponse_FieldNumber_Data_p = 1,
  KEYAPISVCV1PostCompanyImpersonationResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISVCV1PostCompanyImpersonationResponse_Type_OneOfCase) {
  KEYAPISVCV1PostCompanyImpersonationResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PostCompanyImpersonationResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISVCV1PostCompanyImpersonationResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос генерации имперсонационной ссылки для компании
 **/
GPB_FINAL @interface KEYAPISVCV1PostCompanyImpersonationResponse : GPBMessage

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

/** Имперсонационная ссылка */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1PostCompanyImpersonationResponse_CompanyImpersonation *data_p;

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

@end

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

#pragma mark - KEYAPISVCV1PostCompanyImpersonationResponse_Error

typedef GPB_ENUM(KEYAPISVCV1PostCompanyImpersonationResponse_Error_FieldNumber) {
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_FieldNumber_Validation = 1,
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_FieldNumber_OwnerNotFound = 2,
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_FieldNumber_UserServiceError = 3,
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_FieldNumber_VcfrontServiceError = 4,
};

typedef GPB_ENUM(KEYAPISVCV1PostCompanyImpersonationResponse_Error_Reason_OneOfCase) {
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_Reason_OneOfCase_OwnerNotFound = 2,
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_Reason_OneOfCase_UserServiceError = 3,
  KEYAPISVCV1PostCompanyImpersonationResponse_Error_Reason_OneOfCase_VcfrontServiceError = 4,
};

/**
 * Ошибка генерации имперсонационной ссылки для компании
 **/
GPB_FINAL @interface KEYAPISVCV1PostCompanyImpersonationResponse_Error : GPBMessage

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

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

/** Владелец компании не найден */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1PostCompanyImpersonationResponse_Error_OwnerNotFound *ownerNotFound;

/** Ошибка взаимодействия с сервисом User */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1PostCompanyImpersonationResponse_Error_UserServiceError *userServiceError;

/** Ошибка взаимодействия с сервисом vcfront */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISVCV1PostCompanyImpersonationResponse_Error_VcfrontServiceError *vcfrontServiceError;

@end

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

#pragma mark - KEYAPISVCV1PostCompanyImpersonationResponse_Error_OwnerNotFound

/**
 * Владелец компании не найден
 **/
GPB_FINAL @interface KEYAPISVCV1PostCompanyImpersonationResponse_Error_OwnerNotFound : GPBMessage

@end

#pragma mark - KEYAPISVCV1PostCompanyImpersonationResponse_Error_UserServiceError

/**
 * Ошибка взаимодействия с сервисом User
 **/
GPB_FINAL @interface KEYAPISVCV1PostCompanyImpersonationResponse_Error_UserServiceError : GPBMessage

@end

#pragma mark - KEYAPISVCV1PostCompanyImpersonationResponse_Error_VcfrontServiceError

/**
 * Ошибка взаимодействия с сервисом vcfront
 **/
GPB_FINAL @interface KEYAPISVCV1PostCompanyImpersonationResponse_Error_VcfrontServiceError : GPBMessage

@end

#pragma mark - KEYAPISVCV1PostCompanyImpersonationResponse_CompanyImpersonation

typedef GPB_ENUM(KEYAPISVCV1PostCompanyImpersonationResponse_CompanyImpersonation_FieldNumber) {
  KEYAPISVCV1PostCompanyImpersonationResponse_CompanyImpersonation_FieldNumber_URL = 1,
};

/**
 * Имперсонационная ссылка
 **/
GPB_FINAL @interface KEYAPISVCV1PostCompanyImpersonationResponse_CompanyImpersonation : GPBMessage

/** Одноразовая ссылка для имперсонации */
@property(nonatomic, readwrite, copy, null_resettable) NSString *URL;

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
