// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/jwks/v1/keyapis_jwks_key_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 KEYAPISJWKSV1DeleteKeyResponse_Error;
@class KEYAPISJWKSV1KeyInfo_PublicKey;
@class KEYAPISJWKSV1KeyInfo_SavingError;
@class KEYAPISJWKSV1KeyInfo_SavingError_KeyAlreadyExists;
@class KEYAPISJWKSV1PostKeyResponse_Error;
@class KEYAPISJWKSV1ValidationError;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - KEYAPISJWKSV1KeyapisJwksKeyV1Root

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

#pragma mark - KEYAPISJWKSV1KeyInfo

typedef GPB_ENUM(KEYAPISJWKSV1KeyInfo_FieldNumber) {
  KEYAPISJWKSV1KeyInfo_FieldNumber_Id_p = 1,
  KEYAPISJWKSV1KeyInfo_FieldNumber_PublicKey = 2,
  KEYAPISJWKSV1KeyInfo_FieldNumber_CreatedAt = 3,
};

/**
 * Ключ.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISJWKSV1KeyInfo : GPBMessage

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

/** Публичный ключ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISJWKSV1KeyInfo_PublicKey *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;

@end

#pragma mark - KEYAPISJWKSV1KeyInfo_PublicKey

typedef GPB_ENUM(KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber) {
  KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber_Use = 1,
  KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber_Kty = 2,
  KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber_Kid = 3,
  KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber_Alg = 4,
  KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber_N = 5,
  KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber_E = 6,
  KEYAPISJWKSV1KeyInfo_PublicKey_FieldNumber_X5CArray = 7,
};

/**
 * Публичный ключ
 **/
GPB_FINAL @interface KEYAPISJWKSV1KeyInfo_PublicKey : GPBMessage

/**
 * Вид использования.
 * # Диапазон: 2..32
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *use;

/**
 * Тип ключа.
 * # Диапазон: 2..32
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *kty;

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

/**
 * Алгоритм шифрования.
 * # Диапазон: 2..32
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *alg;

/** Параметр Modulus */
@property(nonatomic, readwrite, copy, null_resettable) NSString *n;

/** Параметр Exponent */
@property(nonatomic, readwrite, copy, null_resettable) NSString *e;

/**
 * Цепочка сертификатов X.509.
 * # Диапазон: 0..100
 **/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *x5CArray;
/** The number of items in @c x5CArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger x5CArray_Count;

@end

#pragma mark - KEYAPISJWKSV1KeyInfo_SavingError

typedef GPB_ENUM(KEYAPISJWKSV1KeyInfo_SavingError_FieldNumber) {
  KEYAPISJWKSV1KeyInfo_SavingError_FieldNumber_KeyAlreadyExists = 1,
};

typedef GPB_ENUM(KEYAPISJWKSV1KeyInfo_SavingError_Reason_OneOfCase) {
  KEYAPISJWKSV1KeyInfo_SavingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISJWKSV1KeyInfo_SavingError_Reason_OneOfCase_KeyAlreadyExists = 1,
};

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

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

/** Ключ с таким идентификатором уже существует */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISJWKSV1KeyInfo_SavingError_KeyAlreadyExists *keyAlreadyExists;

@end

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

#pragma mark - KEYAPISJWKSV1KeyInfo_SavingError_KeyAlreadyExists

/**
 * Ключ с таким идентификатором уже существует.
 * Причины:
 * - В базе хранится запись с переданнм kid
 **/
GPB_FINAL @interface KEYAPISJWKSV1KeyInfo_SavingError_KeyAlreadyExists : GPBMessage

@end

#pragma mark - KEYAPISJWKSV1PostKeyRequest

typedef GPB_ENUM(KEYAPISJWKSV1PostKeyRequest_FieldNumber) {
  KEYAPISJWKSV1PostKeyRequest_FieldNumber_Data_p = 1,
};

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

/** Ключ */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISJWKSV1KeyInfo_PublicKey *data_p;
/** Test to see if @c data_p has been set. */
@property(nonatomic, readwrite) BOOL hasData_p;

@end

#pragma mark - KEYAPISJWKSV1PostKeyResponse

typedef GPB_ENUM(KEYAPISJWKSV1PostKeyResponse_FieldNumber) {
  KEYAPISJWKSV1PostKeyResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISJWKSV1PostKeyResponse_Type_OneOfCase) {
  KEYAPISJWKSV1PostKeyResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISJWKSV1PostKeyResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISJWKSV1PostKeyResponse_Error

typedef GPB_ENUM(KEYAPISJWKSV1PostKeyResponse_Error_FieldNumber) {
  KEYAPISJWKSV1PostKeyResponse_Error_FieldNumber_Validation = 1,
  KEYAPISJWKSV1PostKeyResponse_Error_FieldNumber_Saving = 2,
};

typedef GPB_ENUM(KEYAPISJWKSV1PostKeyResponse_Error_Reason_OneOfCase) {
  KEYAPISJWKSV1PostKeyResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISJWKSV1PostKeyResponse_Error_Reason_OneOfCase_Validation = 1,
  KEYAPISJWKSV1PostKeyResponse_Error_Reason_OneOfCase_Saving = 2,
};

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

/** Причина */
@property(nonatomic, readonly) KEYAPISJWKSV1PostKeyResponse_Error_Reason_OneOfCase reasonOneOfCase;

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

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

@end

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

#pragma mark - KEYAPISJWKSV1DeleteKeyRequest

typedef GPB_ENUM(KEYAPISJWKSV1DeleteKeyRequest_FieldNumber) {
  KEYAPISJWKSV1DeleteKeyRequest_FieldNumber_Id_p = 1,
};

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

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

@end

#pragma mark - KEYAPISJWKSV1DeleteKeyResponse

typedef GPB_ENUM(KEYAPISJWKSV1DeleteKeyResponse_FieldNumber) {
  KEYAPISJWKSV1DeleteKeyResponse_FieldNumber_Error = 1,
};

typedef GPB_ENUM(KEYAPISJWKSV1DeleteKeyResponse_Type_OneOfCase) {
  KEYAPISJWKSV1DeleteKeyResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISJWKSV1DeleteKeyResponse_Type_OneOfCase_Error = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISJWKSV1DeleteKeyResponse_Error

typedef GPB_ENUM(KEYAPISJWKSV1DeleteKeyResponse_Error_FieldNumber) {
  KEYAPISJWKSV1DeleteKeyResponse_Error_FieldNumber_Validation = 1,
};

typedef GPB_ENUM(KEYAPISJWKSV1DeleteKeyResponse_Error_Reason_OneOfCase) {
  KEYAPISJWKSV1DeleteKeyResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISJWKSV1DeleteKeyResponse_Error_Reason_OneOfCase_Validation = 1,
};

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

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

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

@end

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

#pragma mark - KEYAPISJWKSV1GetKeyWellKnownJwksJsonRequest

/**
 * Запрос на получение публичных ключей
 **/
GPB_FINAL @interface KEYAPISJWKSV1GetKeyWellKnownJwksJsonRequest : GPBMessage

@end

#pragma mark - KEYAPISJWKSV1GetKeyWellKnownJwksJsonResponse

typedef GPB_ENUM(KEYAPISJWKSV1GetKeyWellKnownJwksJsonResponse_FieldNumber) {
  KEYAPISJWKSV1GetKeyWellKnownJwksJsonResponse_FieldNumber_DataArray = 1,
};

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

/** Список ключей */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<KEYAPISJWKSV1KeyInfo_PublicKey*> *dataArray;
/** The number of items in @c dataArray without causing the container to be created. */
@property(nonatomic, readonly) NSUInteger dataArray_Count;

@end

#pragma mark - KEYAPISJWKSV1ValidationError

typedef GPB_ENUM(KEYAPISJWKSV1ValidationError_FieldNumber) {
  KEYAPISJWKSV1ValidationError_FieldNumber_Path = 1,
  KEYAPISJWKSV1ValidationError_FieldNumber_Message = 2,
};

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