// Generated by the protocol buffer compiler.  DO NOT EDIT!
// clang-format off
// source: keyapis/kms/v1/keyapis_kms_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 KEYAPISKMSV1KeyInfo;
@class KEYAPISKMSV1KeyInfo_GeneratingError;
@class KEYAPISKMSV1KeyInfo_GeneratingError_PublishingKeyError;
@class KEYAPISKMSV1KeyInfo_GeneratingError_TransactionError;
@class KEYAPISKMSV1PostKmsKeyGenerateResponse_Error;

NS_ASSUME_NONNULL_BEGIN

#pragma mark - KEYAPISKMSV1KeyapisKmsKeyV1Root

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

#pragma mark - KEYAPISKMSV1PostKmsKeyGenerateRequest

/**
 * Запрос на генерацию пары ключей
 **/
GPB_FINAL @interface KEYAPISKMSV1PostKmsKeyGenerateRequest : GPBMessage

@end

#pragma mark - KEYAPISKMSV1PostKmsKeyGenerateResponse

typedef GPB_ENUM(KEYAPISKMSV1PostKmsKeyGenerateResponse_FieldNumber) {
  KEYAPISKMSV1PostKmsKeyGenerateResponse_FieldNumber_Data_p = 1,
  KEYAPISKMSV1PostKmsKeyGenerateResponse_FieldNumber_Error = 2,
};

typedef GPB_ENUM(KEYAPISKMSV1PostKmsKeyGenerateResponse_Type_OneOfCase) {
  KEYAPISKMSV1PostKmsKeyGenerateResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISKMSV1PostKmsKeyGenerateResponse_Type_OneOfCase_Data_p = 1,
  KEYAPISKMSV1PostKmsKeyGenerateResponse_Type_OneOfCase_Error = 2,
};

/**
 * Ответ на запрос на генерацию пары ключей
 **/
GPB_FINAL @interface KEYAPISKMSV1PostKmsKeyGenerateResponse : GPBMessage

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

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

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

@end

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

#pragma mark - KEYAPISKMSV1PostKmsKeyGenerateResponse_Error

typedef GPB_ENUM(KEYAPISKMSV1PostKmsKeyGenerateResponse_Error_FieldNumber) {
  KEYAPISKMSV1PostKmsKeyGenerateResponse_Error_FieldNumber_Generating = 1,
};

typedef GPB_ENUM(KEYAPISKMSV1PostKmsKeyGenerateResponse_Error_Reason_OneOfCase) {
  KEYAPISKMSV1PostKmsKeyGenerateResponse_Error_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISKMSV1PostKmsKeyGenerateResponse_Error_Reason_OneOfCase_Generating = 1,
};

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

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

/** Ошибка генерации ключей в сервисе KMS */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISKMSV1KeyInfo_GeneratingError *generating;

@end

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

#pragma mark - KEYAPISKMSV1GetKmsKeyListRequest

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

@end

#pragma mark - KEYAPISKMSV1GetKmsKeyListResponse

typedef GPB_ENUM(KEYAPISKMSV1GetKmsKeyListResponse_FieldNumber) {
  KEYAPISKMSV1GetKmsKeyListResponse_FieldNumber_Data_p = 1,
};

typedef GPB_ENUM(KEYAPISKMSV1GetKmsKeyListResponse_Type_OneOfCase) {
  KEYAPISKMSV1GetKmsKeyListResponse_Type_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISKMSV1GetKmsKeyListResponse_Type_OneOfCase_Data_p = 1,
};

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

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

/**
 * Ключ.
 * В ключе должен отсутсвовать encrypted_private_key
 **/
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISKMSV1KeyInfo *data_p;

@end

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

#pragma mark - KEYAPISKMSV1KeyInfo

typedef GPB_ENUM(KEYAPISKMSV1KeyInfo_FieldNumber) {
  KEYAPISKMSV1KeyInfo_FieldNumber_Id_p = 1,
  KEYAPISKMSV1KeyInfo_FieldNumber_PublicKey = 2,
  KEYAPISKMSV1KeyInfo_FieldNumber_EncryptedPrivateKey = 3,
  KEYAPISKMSV1KeyInfo_FieldNumber_CreatedAt = 4,
  KEYAPISKMSV1KeyInfo_FieldNumber_ExpiredAt = 5,
};

/**
 * Пара ключей.
 * # Описание модели
 **/
GPB_FINAL @interface KEYAPISKMSV1KeyInfo : GPBMessage

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

/**
 * Публичный ключ.
 * # Диапазон: 0..800
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *publicKey;

/**
 * Приватный ключ в зашифрованном виде.
 * # Диапазон: 0..4000
 **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *encryptedPrivateKey;

/** Дата и время создания ключа */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *createdAt;
/** Test to see if @c createdAt has been set. */
@property(nonatomic, readwrite) BOOL hasCreatedAt;

/** Дата и время истечения жизни ключа */
@property(nonatomic, readwrite, strong, null_resettable) GPBTimestamp *expiredAt;
/** Test to see if @c expiredAt has been set. */
@property(nonatomic, readwrite) BOOL hasExpiredAt;

@end

#pragma mark - KEYAPISKMSV1KeyInfo_GeneratingError

typedef GPB_ENUM(KEYAPISKMSV1KeyInfo_GeneratingError_FieldNumber) {
  KEYAPISKMSV1KeyInfo_GeneratingError_FieldNumber_Transaction = 1,
  KEYAPISKMSV1KeyInfo_GeneratingError_FieldNumber_Publishing = 2,
};

typedef GPB_ENUM(KEYAPISKMSV1KeyInfo_GeneratingError_Reason_OneOfCase) {
  KEYAPISKMSV1KeyInfo_GeneratingError_Reason_OneOfCase_GPBUnsetOneOfCase = 0,
  KEYAPISKMSV1KeyInfo_GeneratingError_Reason_OneOfCase_Transaction = 1,
  KEYAPISKMSV1KeyInfo_GeneratingError_Reason_OneOfCase_Publishing = 2,
};

/**
 * Ошибка генерации
 **/
GPB_FINAL @interface KEYAPISKMSV1KeyInfo_GeneratingError : GPBMessage

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

/** Ошибка генерации ключа в сервисе KMS */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISKMSV1KeyInfo_GeneratingError_TransactionError *transaction;

/** Ошибка сохранения публичного ключа в сервисе JWKS */
@property(nonatomic, readwrite, strong, null_resettable) KEYAPISKMSV1KeyInfo_GeneratingError_PublishingKeyError *publishing;

@end

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

#pragma mark - KEYAPISKMSV1KeyInfo_GeneratingError_TransactionError

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

@end

#pragma mark - KEYAPISKMSV1KeyInfo_GeneratingError_PublishingKeyError

/**
 * Ошибка сохранения публичного ключа в сервисе JWKS.
 * Причины:
 * - Отсутсвует связанность с сервисом JWKS
 **/
GPB_FINAL @interface KEYAPISKMSV1KeyInfo_GeneratingError_PublishingKeyError : GPBMessage

@end

NS_ASSUME_NONNULL_END

CF_EXTERN_C_END

#pragma clang diagnostic pop

// @@protoc_insertion_point(global_scope)

// clang-format on
