// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: keyapis/jwks/v1/keyapis_jwks_key_v1.proto

package ru.keyapis.jwks.v1;

public final class KeyapisJwksV1Proto {
  private KeyapisJwksV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface KeyInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.KeyInfo)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the publicKey field is set.
     */
    boolean hasPublicKey();
    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The publicKey.
     */
    ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getPublicKey();

    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the createdAt field is set.
     */
    boolean hasCreatedAt();
    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The createdAt.
     */
    com.google.protobuf.Timestamp getCreatedAt();
  }
  /**
   * <pre>
   * Ключ.
   * # Описание модели
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.KeyInfo}
   */
  public  static final class KeyInfo extends
      com.google.protobuf.GeneratedMessageLite<
          KeyInfo, KeyInfo.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.KeyInfo)
      KeyInfoOrBuilder {
    private KeyInfo() {
      id_ = "";
    }
    public interface PublicKeyOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.KeyInfo.PublicKey)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Вид использования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The use.
       */
      java.lang.String getUse();
      /**
       * <pre>
       * Вид использования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for use.
       */
      com.google.protobuf.ByteString
          getUseBytes();

      /**
       * <pre>
       * Тип ключа.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The kty.
       */
      java.lang.String getKty();
      /**
       * <pre>
       * Тип ключа.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for kty.
       */
      com.google.protobuf.ByteString
          getKtyBytes();

      /**
       * <pre>
       * Идентификатор.
       * # Тип: Guid
       * </pre>
       *
       * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The kid.
       */
      java.lang.String getKid();
      /**
       * <pre>
       * Идентификатор.
       * # Тип: Guid
       * </pre>
       *
       * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for kid.
       */
      com.google.protobuf.ByteString
          getKidBytes();

      /**
       * <pre>
       * Алгоритм шифрования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string alg = 4;</code>
       * @return The alg.
       */
      java.lang.String getAlg();
      /**
       * <pre>
       * Алгоритм шифрования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string alg = 4;</code>
       * @return The bytes for alg.
       */
      com.google.protobuf.ByteString
          getAlgBytes();

      /**
       * <pre>
       * Параметр Modulus
       * </pre>
       *
       * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The n.
       */
      java.lang.String getN();
      /**
       * <pre>
       * Параметр Modulus
       * </pre>
       *
       * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for n.
       */
      com.google.protobuf.ByteString
          getNBytes();

      /**
       * <pre>
       * Параметр Exponent
       * </pre>
       *
       * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The e.
       */
      java.lang.String getE();
      /**
       * <pre>
       * Параметр Exponent
       * </pre>
       *
       * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for e.
       */
      com.google.protobuf.ByteString
          getEBytes();

      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @return A list containing the x5c.
       */
      java.util.List<java.lang.String>
          getX5CList();
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @return The count of x5c.
       */
      int getX5CCount();
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param index The index of the element to return.
       * @return The x5c at the given index.
       */
      java.lang.String getX5C(int index);
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param index The index of the element to return.
       * @return The x5c at the given index.
       */
      com.google.protobuf.ByteString
          getX5CBytes(int index);
    }
    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.KeyInfo.PublicKey}
     */
    public  static final class PublicKey extends
        com.google.protobuf.GeneratedMessageLite<
            PublicKey, PublicKey.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.KeyInfo.PublicKey)
        PublicKeyOrBuilder {
      private PublicKey() {
        use_ = "";
        kty_ = "";
        kid_ = "";
        alg_ = "";
        n_ = "";
        e_ = "";
        x5C_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      }
      public static final int USE_FIELD_NUMBER = 1;
      private java.lang.String use_;
      /**
       * <pre>
       * Вид использования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The use.
       */
      @java.lang.Override
      public java.lang.String getUse() {
        return use_;
      }
      /**
       * <pre>
       * Вид использования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for use.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUseBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(use_);
      }
      /**
       * <pre>
       * Вид использования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The use to set.
       */
      private void setUse(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  
        use_ = value;
      }
      /**
       * <pre>
       * Вид использования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearUse() {

        use_ = getDefaultInstance().getUse();
      }
      /**
       * <pre>
       * Вид использования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for use to set.
       */
      private void setUseBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        use_ = value.toStringUtf8();

      }

      public static final int KTY_FIELD_NUMBER = 2;
      private java.lang.String kty_;
      /**
       * <pre>
       * Тип ключа.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The kty.
       */
      @java.lang.Override
      public java.lang.String getKty() {
        return kty_;
      }
      /**
       * <pre>
       * Тип ключа.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for kty.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKtyBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(kty_);
      }
      /**
       * <pre>
       * Тип ключа.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The kty to set.
       */
      private void setKty(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  
        kty_ = value;
      }
      /**
       * <pre>
       * Тип ключа.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearKty() {

        kty_ = getDefaultInstance().getKty();
      }
      /**
       * <pre>
       * Тип ключа.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for kty to set.
       */
      private void setKtyBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        kty_ = value.toStringUtf8();

      }

      public static final int KID_FIELD_NUMBER = 3;
      private java.lang.String kid_;
      /**
       * <pre>
       * Идентификатор.
       * # Тип: Guid
       * </pre>
       *
       * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The kid.
       */
      @java.lang.Override
      public java.lang.String getKid() {
        return kid_;
      }
      /**
       * <pre>
       * Идентификатор.
       * # Тип: Guid
       * </pre>
       *
       * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for kid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKidBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(kid_);
      }
      /**
       * <pre>
       * Идентификатор.
       * # Тип: Guid
       * </pre>
       *
       * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The kid to set.
       */
      private void setKid(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  
        kid_ = value;
      }
      /**
       * <pre>
       * Идентификатор.
       * # Тип: Guid
       * </pre>
       *
       * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearKid() {

        kid_ = getDefaultInstance().getKid();
      }
      /**
       * <pre>
       * Идентификатор.
       * # Тип: Guid
       * </pre>
       *
       * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for kid to set.
       */
      private void setKidBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        kid_ = value.toStringUtf8();

      }

      public static final int ALG_FIELD_NUMBER = 4;
      private java.lang.String alg_;
      /**
       * <pre>
       * Алгоритм шифрования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string alg = 4;</code>
       * @return The alg.
       */
      @java.lang.Override
      public java.lang.String getAlg() {
        return alg_;
      }
      /**
       * <pre>
       * Алгоритм шифрования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string alg = 4;</code>
       * @return The bytes for alg.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getAlgBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(alg_);
      }
      /**
       * <pre>
       * Алгоритм шифрования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string alg = 4;</code>
       * @param value The alg to set.
       */
      private void setAlg(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  
        alg_ = value;
      }
      /**
       * <pre>
       * Алгоритм шифрования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string alg = 4;</code>
       */
      private void clearAlg() {

        alg_ = getDefaultInstance().getAlg();
      }
      /**
       * <pre>
       * Алгоритм шифрования.
       * # Диапазон: 2..32
       * </pre>
       *
       * <code>string alg = 4;</code>
       * @param value The bytes for alg to set.
       */
      private void setAlgBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        alg_ = value.toStringUtf8();

      }

      public static final int N_FIELD_NUMBER = 5;
      private java.lang.String n_;
      /**
       * <pre>
       * Параметр Modulus
       * </pre>
       *
       * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The n.
       */
      @java.lang.Override
      public java.lang.String getN() {
        return n_;
      }
      /**
       * <pre>
       * Параметр Modulus
       * </pre>
       *
       * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for n.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(n_);
      }
      /**
       * <pre>
       * Параметр Modulus
       * </pre>
       *
       * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The n to set.
       */
      private void setN(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  
        n_ = value;
      }
      /**
       * <pre>
       * Параметр Modulus
       * </pre>
       *
       * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearN() {

        n_ = getDefaultInstance().getN();
      }
      /**
       * <pre>
       * Параметр Modulus
       * </pre>
       *
       * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for n to set.
       */
      private void setNBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        n_ = value.toStringUtf8();

      }

      public static final int E_FIELD_NUMBER = 6;
      private java.lang.String e_;
      /**
       * <pre>
       * Параметр Exponent
       * </pre>
       *
       * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The e.
       */
      @java.lang.Override
      public java.lang.String getE() {
        return e_;
      }
      /**
       * <pre>
       * Параметр Exponent
       * </pre>
       *
       * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for e.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(e_);
      }
      /**
       * <pre>
       * Параметр Exponent
       * </pre>
       *
       * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The e to set.
       */
      private void setE(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  
        e_ = value;
      }
      /**
       * <pre>
       * Параметр Exponent
       * </pre>
       *
       * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearE() {

        e_ = getDefaultInstance().getE();
      }
      /**
       * <pre>
       * Параметр Exponent
       * </pre>
       *
       * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for e to set.
       */
      private void setEBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        e_ = value.toStringUtf8();

      }

      public static final int X5C_FIELD_NUMBER = 7;
      private com.google.protobuf.Internal.ProtobufList<java.lang.String> x5C_;
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @return A list containing the x5c.
       */
      @java.lang.Override
      public java.util.List<java.lang.String> getX5CList() {
        return x5C_;
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @return The count of x5c.
       */
      @java.lang.Override
      public int getX5CCount() {
        return x5C_.size();
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param index The index of the element to return.
       * @return The x5c at the given index.
       */
      @java.lang.Override
      public java.lang.String getX5C(int index) {
        return x5C_.get(index);
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param index The index of the value to return.
       * @return The bytes of the x5c at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getX5CBytes(int index) {
        return com.google.protobuf.ByteString.copyFromUtf8(
            x5C_.get(index));
      }
      private void ensureX5CIsMutable() {
        com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
            x5C_;  if (!tmp.isModifiable()) {
          x5C_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param index The index to set the value at.
       * @param value The x5c to set.
       */
      private void setX5C(
          int index, java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  ensureX5CIsMutable();
        x5C_.set(index, value);
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param value The x5c to add.
       */
      private void addX5C(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  ensureX5CIsMutable();
        x5C_.add(value);
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param values The x5c to add.
       */
      private void addAllX5C(
          java.lang.Iterable<java.lang.String> values) {
        ensureX5CIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, x5C_);
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       */
      private void clearX5C() {
        x5C_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      }
      /**
       * <pre>
       * Цепочка сертификатов X.509.
       * # Диапазон: 0..100
       * </pre>
       *
       * <code>repeated string x5c = 7;</code>
       * @param value The bytes of the x5c to add.
       */
      private void addX5CBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        ensureX5CIsMutable();
        x5C_.add(value.toStringUtf8());
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Публичный ключ
       * </pre>
       *
       * Protobuf type {@code keyapis.jwks.v1.KeyInfo.PublicKey}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.KeyInfo.PublicKey)
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKeyOrBuilder {
        // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <pre>
         * Вид использования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The use.
         */
        @java.lang.Override
        public java.lang.String getUse() {
          return instance.getUse();
        }
        /**
         * <pre>
         * Вид использования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for use.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getUseBytes() {
          return instance.getUseBytes();
        }
        /**
         * <pre>
         * Вид использования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The use to set.
         * @return This builder for chaining.
         */
        public Builder setUse(
            java.lang.String value) {
          copyOnWrite();
          instance.setUse(value);
          return this;
        }
        /**
         * <pre>
         * Вид использования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearUse() {
          copyOnWrite();
          instance.clearUse();
          return this;
        }
        /**
         * <pre>
         * Вид использования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string use = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for use to set.
         * @return This builder for chaining.
         */
        public Builder setUseBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setUseBytes(value);
          return this;
        }

        /**
         * <pre>
         * Тип ключа.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The kty.
         */
        @java.lang.Override
        public java.lang.String getKty() {
          return instance.getKty();
        }
        /**
         * <pre>
         * Тип ключа.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for kty.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getKtyBytes() {
          return instance.getKtyBytes();
        }
        /**
         * <pre>
         * Тип ключа.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The kty to set.
         * @return This builder for chaining.
         */
        public Builder setKty(
            java.lang.String value) {
          copyOnWrite();
          instance.setKty(value);
          return this;
        }
        /**
         * <pre>
         * Тип ключа.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearKty() {
          copyOnWrite();
          instance.clearKty();
          return this;
        }
        /**
         * <pre>
         * Тип ключа.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string kty = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for kty to set.
         * @return This builder for chaining.
         */
        public Builder setKtyBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setKtyBytes(value);
          return this;
        }

        /**
         * <pre>
         * Идентификатор.
         * # Тип: Guid
         * </pre>
         *
         * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The kid.
         */
        @java.lang.Override
        public java.lang.String getKid() {
          return instance.getKid();
        }
        /**
         * <pre>
         * Идентификатор.
         * # Тип: Guid
         * </pre>
         *
         * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for kid.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getKidBytes() {
          return instance.getKidBytes();
        }
        /**
         * <pre>
         * Идентификатор.
         * # Тип: Guid
         * </pre>
         *
         * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The kid to set.
         * @return This builder for chaining.
         */
        public Builder setKid(
            java.lang.String value) {
          copyOnWrite();
          instance.setKid(value);
          return this;
        }
        /**
         * <pre>
         * Идентификатор.
         * # Тип: Guid
         * </pre>
         *
         * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearKid() {
          copyOnWrite();
          instance.clearKid();
          return this;
        }
        /**
         * <pre>
         * Идентификатор.
         * # Тип: Guid
         * </pre>
         *
         * <code>string kid = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for kid to set.
         * @return This builder for chaining.
         */
        public Builder setKidBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setKidBytes(value);
          return this;
        }

        /**
         * <pre>
         * Алгоритм шифрования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string alg = 4;</code>
         * @return The alg.
         */
        @java.lang.Override
        public java.lang.String getAlg() {
          return instance.getAlg();
        }
        /**
         * <pre>
         * Алгоритм шифрования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string alg = 4;</code>
         * @return The bytes for alg.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getAlgBytes() {
          return instance.getAlgBytes();
        }
        /**
         * <pre>
         * Алгоритм шифрования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string alg = 4;</code>
         * @param value The alg to set.
         * @return This builder for chaining.
         */
        public Builder setAlg(
            java.lang.String value) {
          copyOnWrite();
          instance.setAlg(value);
          return this;
        }
        /**
         * <pre>
         * Алгоритм шифрования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string alg = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearAlg() {
          copyOnWrite();
          instance.clearAlg();
          return this;
        }
        /**
         * <pre>
         * Алгоритм шифрования.
         * # Диапазон: 2..32
         * </pre>
         *
         * <code>string alg = 4;</code>
         * @param value The bytes for alg to set.
         * @return This builder for chaining.
         */
        public Builder setAlgBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setAlgBytes(value);
          return this;
        }

        /**
         * <pre>
         * Параметр Modulus
         * </pre>
         *
         * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The n.
         */
        @java.lang.Override
        public java.lang.String getN() {
          return instance.getN();
        }
        /**
         * <pre>
         * Параметр Modulus
         * </pre>
         *
         * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for n.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNBytes() {
          return instance.getNBytes();
        }
        /**
         * <pre>
         * Параметр Modulus
         * </pre>
         *
         * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The n to set.
         * @return This builder for chaining.
         */
        public Builder setN(
            java.lang.String value) {
          copyOnWrite();
          instance.setN(value);
          return this;
        }
        /**
         * <pre>
         * Параметр Modulus
         * </pre>
         *
         * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearN() {
          copyOnWrite();
          instance.clearN();
          return this;
        }
        /**
         * <pre>
         * Параметр Modulus
         * </pre>
         *
         * <code>string n = 5 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for n to set.
         * @return This builder for chaining.
         */
        public Builder setNBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNBytes(value);
          return this;
        }

        /**
         * <pre>
         * Параметр Exponent
         * </pre>
         *
         * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The e.
         */
        @java.lang.Override
        public java.lang.String getE() {
          return instance.getE();
        }
        /**
         * <pre>
         * Параметр Exponent
         * </pre>
         *
         * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for e.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getEBytes() {
          return instance.getEBytes();
        }
        /**
         * <pre>
         * Параметр Exponent
         * </pre>
         *
         * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The e to set.
         * @return This builder for chaining.
         */
        public Builder setE(
            java.lang.String value) {
          copyOnWrite();
          instance.setE(value);
          return this;
        }
        /**
         * <pre>
         * Параметр Exponent
         * </pre>
         *
         * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearE() {
          copyOnWrite();
          instance.clearE();
          return this;
        }
        /**
         * <pre>
         * Параметр Exponent
         * </pre>
         *
         * <code>string e = 6 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for e to set.
         * @return This builder for chaining.
         */
        public Builder setEBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setEBytes(value);
          return this;
        }

        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @return A list containing the x5c.
         */
        @java.lang.Override
        public java.util.List<java.lang.String>
            getX5CList() {
          return java.util.Collections.unmodifiableList(
              instance.getX5CList());
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @return The count of x5c.
         */
        @java.lang.Override
        public int getX5CCount() {
          return instance.getX5CCount();
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @param index The index of the element to return.
         * @return The x5c at the given index.
         */
        @java.lang.Override
        public java.lang.String getX5C(int index) {
          return instance.getX5C(index);
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @param index The index of the value to return.
         * @return The bytes of the x5c at the given index.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getX5CBytes(int index) {
          return instance.getX5CBytes(index);
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @param index The index to set the value at.
         * @param value The x5c to set.
         * @return This builder for chaining.
         */
        public Builder setX5C(
            int index, java.lang.String value) {
          copyOnWrite();
          instance.setX5C(index, value);
          return this;
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @param value The x5c to add.
         * @return This builder for chaining.
         */
        public Builder addX5C(
            java.lang.String value) {
          copyOnWrite();
          instance.addX5C(value);
          return this;
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @param values The x5c to add.
         * @return This builder for chaining.
         */
        public Builder addAllX5C(
            java.lang.Iterable<java.lang.String> values) {
          copyOnWrite();
          instance.addAllX5C(values);
          return this;
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearX5C() {
          copyOnWrite();
          instance.clearX5C();
          return this;
        }
        /**
         * <pre>
         * Цепочка сертификатов X.509.
         * # Диапазон: 0..100
         * </pre>
         *
         * <code>repeated string x5c = 7;</code>
         * @param value The bytes of the x5c to add.
         * @return This builder for chaining.
         */
        public Builder addX5CBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.addX5CBytes(value);
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.KeyInfo.PublicKey)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "use_",
                "kty_",
                "kid_",
                "alg_",
                "n_",
                "e_",
                "x5C_",
              };
              java.lang.String info =
                  "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0001\u0000\u0001\u0208\u0002\u0208" +
                  "\u0003\u0208\u0004\u0208\u0005\u0208\u0006\u0208\u0007\u021a";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.KeyInfo.PublicKey)
      private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey DEFAULT_INSTANCE;
      static {
        PublicKey defaultInstance = new PublicKey();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          PublicKey.class, defaultInstance);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<PublicKey> PARSER;

      public static com.google.protobuf.Parser<PublicKey> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    public interface SavingErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.KeyInfo.SavingError)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Ключ с таким идентификатором уже существует
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
       * @return Whether the keyAlreadyExists field is set.
       */
      boolean hasKeyAlreadyExists();
      /**
       * <pre>
       * Ключ с таким идентификатором уже существует
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
       * @return The keyAlreadyExists.
       */
      ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists getKeyAlreadyExists();

      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка сохранения.
     * Эти проверки выполняются при работе с базой данных и сторонними сервисами
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.KeyInfo.SavingError}
     */
    public  static final class SavingError extends
        com.google.protobuf.GeneratedMessageLite<
            SavingError, SavingError.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.KeyInfo.SavingError)
        SavingErrorOrBuilder {
      private SavingError() {
      }
      public interface KeyAlreadyExistsOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Ключ с таким идентификатором уже существует.
       * Причины:
       * - В базе хранится запись с переданнм kid
       * </pre>
       *
       * Protobuf type {@code keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists}
       */
      public  static final class KeyAlreadyExists extends
          com.google.protobuf.GeneratedMessageLite<
              KeyAlreadyExists, KeyAlreadyExists.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists)
          KeyAlreadyExistsOrBuilder {
        private KeyAlreadyExists() {
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Ключ с таким идентификатором уже существует.
         * Причины:
         * - В базе хранится запись с переданнм kid
         * </pre>
         *
         * Protobuf type {@code keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists)
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExistsOrBuilder {
          // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists)
        }
        @java.lang.Override
        @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
        protected final java.lang.Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            java.lang.Object arg0, java.lang.Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = null;java.lang.String info =
                    "\u0000\u0000";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists> parser = PARSER;
              if (parser == null) {
                synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists>(
                            DEFAULT_INSTANCE);
                    PARSER = parser;
                  }
                }
              }
              return parser;
          }
          case GET_MEMOIZED_IS_INITIALIZED: {
            return (byte) 1;
          }
          case SET_MEMOIZED_IS_INITIALIZED: {
            return null;
          }
          }
          throw new UnsupportedOperationException();
        }


        // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists)
        private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists DEFAULT_INSTANCE;
        static {
          KeyAlreadyExists defaultInstance = new KeyAlreadyExists();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            KeyAlreadyExists.class, defaultInstance);
        }

        public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static volatile com.google.protobuf.Parser<KeyAlreadyExists> PARSER;

        public static com.google.protobuf.Parser<KeyAlreadyExists> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }

      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        KEY_ALREADY_EXISTS(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ReasonCase valueOf(int value) {
          return forNumber(value);
        }

        public static ReasonCase forNumber(int value) {
          switch (value) {
            case 1: return KEY_ALREADY_EXISTS;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      private void clearReason() {
        reasonCase_ = 0;
        reason_ = null;
      }

      public static final int KEY_ALREADY_EXISTS_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ключ с таким идентификатором уже существует
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
       */
      @java.lang.Override
      public boolean hasKeyAlreadyExists() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ключ с таким идентификатором уже существует
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists getKeyAlreadyExists() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists) reason_;
        }
        return ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists.getDefaultInstance();
      }
      /**
       * <pre>
       * Ключ с таким идентификатором уже существует
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
       */
      private void setKeyAlreadyExists(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ключ с таким идентификатором уже существует
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
       */
      private void mergeKeyAlreadyExists(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists.getDefaultInstance()) {
          reason_ = ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists.newBuilder((ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ключ с таким идентификатором уже существует
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
       */
      private void clearKeyAlreadyExists() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка сохранения.
       * Эти проверки выполняются при работе с базой данных и сторонними сервисами
       * </pre>
       *
       * Protobuf type {@code keyapis.jwks.v1.KeyInfo.SavingError}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.KeyInfo.SavingError)
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingErrorOrBuilder {
        // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ReasonCase
            getReasonCase() {
          return instance.getReasonCase();
        }

        public Builder clearReason() {
          copyOnWrite();
          instance.clearReason();
          return this;
        }


        /**
         * <pre>
         * Ключ с таким идентификатором уже существует
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
         */
        @java.lang.Override
        public boolean hasKeyAlreadyExists() {
          return instance.hasKeyAlreadyExists();
        }
        /**
         * <pre>
         * Ключ с таким идентификатором уже существует
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists getKeyAlreadyExists() {
          return instance.getKeyAlreadyExists();
        }
        /**
         * <pre>
         * Ключ с таким идентификатором уже существует
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
         */
        public Builder setKeyAlreadyExists(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists value) {
          copyOnWrite();
          instance.setKeyAlreadyExists(value);
          return this;
        }
        /**
         * <pre>
         * Ключ с таким идентификатором уже существует
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
         */
        public Builder setKeyAlreadyExists(
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists.Builder builderForValue) {
          copyOnWrite();
          instance.setKeyAlreadyExists(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ключ с таким идентификатором уже существует
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
         */
        public Builder mergeKeyAlreadyExists(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists value) {
          copyOnWrite();
          instance.mergeKeyAlreadyExists(value);
          return this;
        }
        /**
         * <pre>
         * Ключ с таким идентификатором уже существует
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists key_already_exists = 1;</code>
         */
        public Builder clearKeyAlreadyExists() {
          copyOnWrite();
          instance.clearKeyAlreadyExists();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.KeyInfo.SavingError)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.KeyAlreadyExists.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.KeyInfo.SavingError)
      private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError DEFAULT_INSTANCE;
      static {
        SavingError defaultInstance = new SavingError();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          SavingError.class, defaultInstance);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<SavingError> PARSER;

      public static com.google.protobuf.Parser<SavingError> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    public static final int ID_FIELD_NUMBER = 1;
    private java.lang.String id_;
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(id_);
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The id to set.
     */
    private void setId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearId() {

      id_ = getDefaultInstance().getId();
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for id to set.
     */
    private void setIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      id_ = value.toStringUtf8();

    }

    public static final int PUBLIC_KEY_FIELD_NUMBER = 2;
    private ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey publicKey_;
    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public boolean hasPublicKey() {
      return publicKey_ != null;
    }
    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getPublicKey() {
      return publicKey_ == null ? ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.getDefaultInstance() : publicKey_;
    }
    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void setPublicKey(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
      value.getClass();
  publicKey_ = value;

      }
    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePublicKey(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
      value.getClass();
  if (publicKey_ != null &&
          publicKey_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.getDefaultInstance()) {
        publicKey_ =
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.newBuilder(publicKey_).mergeFrom(value).buildPartial();
      } else {
        publicKey_ = value;
      }

    }
    /**
     * <pre>
     * Публичный ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearPublicKey() {  publicKey_ = null;

    }

    public static final int CREATED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp createdAt_;
    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public boolean hasCreatedAt() {
      return createdAt_ != null;
    }
    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getCreatedAt() {
      return createdAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createdAt_;
    }
    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void setCreatedAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  createdAt_ = value;

      }
    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCreatedAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  if (createdAt_ != null &&
          createdAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
        createdAt_ =
          com.google.protobuf.Timestamp.newBuilder(createdAt_).mergeFrom(value).buildPartial();
      } else {
        createdAt_ = value;
      }

    }
    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void clearCreatedAt() {  createdAt_ = null;

    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ключ.
     * # Описание модели
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.KeyInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.KeyInfo)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfoOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        return instance.getIdBytes();
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * Публичный ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasPublicKey() {
        return instance.hasPublicKey();
      }
      /**
       * <pre>
       * Публичный ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getPublicKey() {
        return instance.getPublicKey();
      }
      /**
       * <pre>
       * Публичный ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setPublicKey(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
        copyOnWrite();
        instance.setPublicKey(value);
        return this;
        }
      /**
       * <pre>
       * Публичный ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setPublicKey(
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.Builder builderForValue) {
        copyOnWrite();
        instance.setPublicKey(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Публичный ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergePublicKey(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
        copyOnWrite();
        instance.mergePublicKey(value);
        return this;
      }
      /**
       * <pre>
       * Публичный ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey public_key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearPublicKey() {  copyOnWrite();
        instance.clearPublicKey();
        return this;
      }

      /**
       * <pre>
       * Дата создания.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      @java.lang.Override
      public boolean hasCreatedAt() {
        return instance.hasCreatedAt();
      }
      /**
       * <pre>
       * Дата создания.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getCreatedAt() {
        return instance.getCreatedAt();
      }
      /**
       * <pre>
       * Дата создания.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder setCreatedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.setCreatedAt(value);
        return this;
        }
      /**
       * <pre>
       * Дата создания.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder setCreatedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        copyOnWrite();
        instance.setCreatedAt(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Дата создания.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder mergeCreatedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.mergeCreatedAt(value);
        return this;
      }
      /**
       * <pre>
       * Дата создания.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp created_at = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder clearCreatedAt() {  copyOnWrite();
        instance.clearCreatedAt();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.KeyInfo)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "publicKey_",
              "createdAt_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\t" +
                "\u0003\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.KeyInfo)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo DEFAULT_INSTANCE;
    static {
      KeyInfo defaultInstance = new KeyInfo();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        KeyInfo.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<KeyInfo> PARSER;

    public static com.google.protobuf.Parser<KeyInfo> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface PostKeyRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.PostKeyRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The data.
     */
    ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getData();
  }
  /**
   * <pre>
   * Запрос на сохранение публичного ключа
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.PostKeyRequest}
   */
  public  static final class PostKeyRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PostKeyRequest, PostKeyRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.PostKeyRequest)
      PostKeyRequestOrBuilder {
    private PostKeyRequest() {
    }
    public static final int DATA_FIELD_NUMBER = 1;
    private ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey data_;
    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return data_ != null;
    }
    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getData() {
      return data_ == null ? ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.getDefaultInstance() : data_;
    }
    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void setData(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
      value.getClass();
  data_ = value;

      }
    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeData(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
      value.getClass();
  if (data_ != null &&
          data_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.getDefaultInstance()) {
        data_ =
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.newBuilder(data_).mergeFrom(value).buildPartial();
      } else {
        data_ = value;
      }

    }
    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearData() {  data_ = null;

    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос на сохранение публичного ключа
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.PostKeyRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.PostKeyRequest)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequestOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setData(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
        copyOnWrite();
        instance.setData(value);
        return this;
        }
      /**
       * <pre>
       * Ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setData(
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeData(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Ключ
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearData() {  copyOnWrite();
        instance.clearData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.PostKeyRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "data_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.PostKeyRequest)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest DEFAULT_INSTANCE;
    static {
      PostKeyRequest defaultInstance = new PostKeyRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PostKeyRequest.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<PostKeyRequest> PARSER;

    public static com.google.protobuf.Parser<PostKeyRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface PostKeyResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.PostKeyResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
     * @return The error.
     */
    ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error getError();

    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос на сохранение публичного ключа
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.PostKeyResponse}
   */
  public  static final class PostKeyResponse extends
      com.google.protobuf.GeneratedMessageLite<
          PostKeyResponse, PostKeyResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.PostKeyResponse)
      PostKeyResponseOrBuilder {
    private PostKeyResponse() {
    }
    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.PostKeyResponse.Error)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Ошибки валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       * @return Whether the validation field is set.
       */
      boolean hasValidation();
      /**
       * <pre>
       * Ошибки валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       * @return The validation.
       */
      ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError getValidation();

      /**
       * <pre>
       * Ошибка сохранения
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
       * @return Whether the saving field is set.
       */
      boolean hasSaving();
      /**
       * <pre>
       * Ошибка сохранения
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
       * @return The saving.
       */
      ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError getSaving();

      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.PostKeyResponse.Error}
     */
    public  static final class Error extends
        com.google.protobuf.GeneratedMessageLite<
            Error, Error.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.PostKeyResponse.Error)
        ErrorOrBuilder {
      private Error() {
      }
      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        VALIDATION(1),
        SAVING(2),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ReasonCase valueOf(int value) {
          return forNumber(value);
        }

        public static ReasonCase forNumber(int value) {
          switch (value) {
            case 1: return VALIDATION;
            case 2: return SAVING;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      private void clearReason() {
        reasonCase_ = 0;
        reason_ = null;
      }

      public static final int VALIDATION_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибки валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      @java.lang.Override
      public boolean hasValidation() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибки валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError getValidation() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError) reason_;
        }
        return ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибки валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      private void setValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибки валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      private void mergeValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.getDefaultInstance()) {
          reason_ = ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.newBuilder((ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибки валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      private void clearValidation() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static final int SAVING_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Ошибка сохранения
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
       */
      @java.lang.Override
      public boolean hasSaving() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка сохранения
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError getSaving() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError) reason_;
        }
        return ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка сохранения
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
       */
      private void setSaving(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Ошибка сохранения
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
       */
      private void mergeSaving(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError value) {
        value.getClass();
  if (reasonCase_ == 2 &&
            reason_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.getDefaultInstance()) {
          reason_ = ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.newBuilder((ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Ошибка сохранения
       * </pre>
       *
       * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
       */
      private void clearSaving() {
        if (reasonCase_ == 2) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * Protobuf type {@code keyapis.jwks.v1.PostKeyResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.PostKeyResponse.Error)
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ReasonCase
            getReasonCase() {
          return instance.getReasonCase();
        }

        public Builder clearReason() {
          copyOnWrite();
          instance.clearReason();
          return this;
        }


        /**
         * <pre>
         * Ошибки валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибки валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибки валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибки валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибки валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибки валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

        /**
         * <pre>
         * Ошибка сохранения
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
         */
        @java.lang.Override
        public boolean hasSaving() {
          return instance.hasSaving();
        }
        /**
         * <pre>
         * Ошибка сохранения
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError getSaving() {
          return instance.getSaving();
        }
        /**
         * <pre>
         * Ошибка сохранения
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
         */
        public Builder setSaving(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError value) {
          copyOnWrite();
          instance.setSaving(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка сохранения
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
         */
        public Builder setSaving(
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.Builder builderForValue) {
          copyOnWrite();
          instance.setSaving(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка сохранения
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
         */
        public Builder mergeSaving(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError value) {
          copyOnWrite();
          instance.mergeSaving(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка сохранения
         * </pre>
         *
         * <code>.keyapis.jwks.v1.KeyInfo.SavingError saving = 2;</code>
         */
        public Builder clearSaving() {
          copyOnWrite();
          instance.clearSaving();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.PostKeyResponse.Error)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.class,
                ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.SavingError.class,
              };
              java.lang.String info =
                  "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                  "\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.PostKeyResponse.Error)
      private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error DEFAULT_INSTANCE;
      static {
        Error defaultInstance = new Error();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Error.class, defaultInstance);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<Error> PARSER;

      public static com.google.protobuf.Parser<Error> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      ERROR(1),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeCase forNumber(int value) {
        switch (value) {
          case 1: return ERROR;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    private void clearType() {
      typeCase_ = 0;
      type_ = null;
    }

    public static final int ERROR_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error getError() {
      if (typeCase_ == 1) {
         return (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error) type_;
      }
      return ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
     */
    private void setError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
     */
    private void mergeError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.newBuilder((ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
     */
    private void clearError() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос на сохранение публичного ключа
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.PostKeyResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.PostKeyResponse)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponseOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public TypeCase
          getTypeCase() {
        return instance.getTypeCase();
      }

      public Builder clearType() {
        copyOnWrite();
        instance.clearType();
        return this;
      }


      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.PostKeyResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.PostKeyResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.PostKeyResponse)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse DEFAULT_INSTANCE;
    static {
      PostKeyResponse defaultInstance = new PostKeyResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PostKeyResponse.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.PostKeyResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<PostKeyResponse> PARSER;

    public static com.google.protobuf.Parser<PostKeyResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DeleteKeyRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.DeleteKeyRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();
  }
  /**
   * <pre>
   * Запрос удаления публичного ключа
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.DeleteKeyRequest}
   */
  public  static final class DeleteKeyRequest extends
      com.google.protobuf.GeneratedMessageLite<
          DeleteKeyRequest, DeleteKeyRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.DeleteKeyRequest)
      DeleteKeyRequestOrBuilder {
    private DeleteKeyRequest() {
      id_ = "";
    }
    public static final int ID_FIELD_NUMBER = 1;
    private java.lang.String id_;
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(id_);
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The id to set.
     */
    private void setId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearId() {

      id_ = getDefaultInstance().getId();
    }
    /**
     * <pre>
     * Идентификатор ключа, соответсвует kid.
     * # Тип: Guid
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for id to set.
     */
    private void setIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      id_ = value.toStringUtf8();

    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос удаления публичного ключа
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.DeleteKeyRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.DeleteKeyRequest)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequestOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        return instance.getIdBytes();
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ключа, соответсвует kid.
       * # Тип: Guid
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setIdBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.DeleteKeyRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.DeleteKeyRequest)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest DEFAULT_INSTANCE;
    static {
      DeleteKeyRequest defaultInstance = new DeleteKeyRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DeleteKeyRequest.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DeleteKeyRequest> PARSER;

    public static com.google.protobuf.Parser<DeleteKeyRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DeleteKeyResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.DeleteKeyResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
     * @return The error.
     */
    ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error getError();

    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос удаления публичного ключа
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.DeleteKeyResponse}
   */
  public  static final class DeleteKeyResponse extends
      com.google.protobuf.GeneratedMessageLite<
          DeleteKeyResponse, DeleteKeyResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.DeleteKeyResponse)
      DeleteKeyResponseOrBuilder {
    private DeleteKeyResponse() {
    }
    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.DeleteKeyResponse.Error)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Ошибка валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       * @return Whether the validation field is set.
       */
      boolean hasValidation();
      /**
       * <pre>
       * Ошибка валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       * @return The validation.
       */
      ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError getValidation();

      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса удаления публичного ключа
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.DeleteKeyResponse.Error}
     */
    public  static final class Error extends
        com.google.protobuf.GeneratedMessageLite<
            Error, Error.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.DeleteKeyResponse.Error)
        ErrorOrBuilder {
      private Error() {
      }
      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        VALIDATION(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ReasonCase valueOf(int value) {
          return forNumber(value);
        }

        public static ReasonCase forNumber(int value) {
          switch (value) {
            case 1: return VALIDATION;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      private void clearReason() {
        reasonCase_ = 0;
        reason_ = null;
      }

      public static final int VALIDATION_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      @java.lang.Override
      public boolean hasValidation() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError getValidation() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError) reason_;
        }
        return ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      private void setValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      private void mergeValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.getDefaultInstance()) {
          reason_ = ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.newBuilder((ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка валидации
       * </pre>
       *
       * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
       */
      private void clearValidation() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса удаления публичного ключа
       * </pre>
       *
       * Protobuf type {@code keyapis.jwks.v1.DeleteKeyResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.DeleteKeyResponse.Error)
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ReasonCase
            getReasonCase() {
          return instance.getReasonCase();
        }

        public Builder clearReason() {
          copyOnWrite();
          instance.clearReason();
          return this;
        }


        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.jwks.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.DeleteKeyResponse.Error)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.DeleteKeyResponse.Error)
      private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error DEFAULT_INSTANCE;
      static {
        Error defaultInstance = new Error();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Error.class, defaultInstance);
      }

      public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<Error> PARSER;

      public static com.google.protobuf.Parser<Error> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      ERROR(1),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeCase forNumber(int value) {
        switch (value) {
          case 1: return ERROR;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    private void clearType() {
      typeCase_ = 0;
      type_ = null;
    }

    public static final int ERROR_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error getError() {
      if (typeCase_ == 1) {
         return (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error) type_;
      }
      return ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
     */
    private void setError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
     */
    private void mergeError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.newBuilder((ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
     */
    private void clearError() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос удаления публичного ключа
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.DeleteKeyResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.DeleteKeyResponse)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponseOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public TypeCase
          getTypeCase() {
        return instance.getTypeCase();
      }

      public Builder clearType() {
        copyOnWrite();
        instance.clearType();
        return this;
      }


      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.jwks.v1.DeleteKeyResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.DeleteKeyResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.DeleteKeyResponse)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse DEFAULT_INSTANCE;
    static {
      DeleteKeyResponse defaultInstance = new DeleteKeyResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DeleteKeyResponse.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.DeleteKeyResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DeleteKeyResponse> PARSER;

    public static com.google.protobuf.Parser<DeleteKeyResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetKeyWellKnownJwksJsonRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Запрос на получение публичных ключей
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest}
   */
  public  static final class GetKeyWellKnownJwksJsonRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetKeyWellKnownJwksJsonRequest, GetKeyWellKnownJwksJsonRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest)
      GetKeyWellKnownJwksJsonRequestOrBuilder {
    private GetKeyWellKnownJwksJsonRequest() {
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос на получение публичных ключей
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequestOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = null;java.lang.String info =
                "\u0000\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest DEFAULT_INSTANCE;
    static {
      GetKeyWellKnownJwksJsonRequest defaultInstance = new GetKeyWellKnownJwksJsonRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetKeyWellKnownJwksJsonRequest.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetKeyWellKnownJwksJsonRequest> PARSER;

    public static com.google.protobuf.Parser<GetKeyWellKnownJwksJsonRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetKeyWellKnownJwksJsonResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    java.util.List<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> 
        getDataList();
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getData(int index);
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    int getDataCount();
  }
  /**
   * <pre>
   * Ответ на запрос на получение публичных ключей
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse}
   */
  public  static final class GetKeyWellKnownJwksJsonResponse extends
      com.google.protobuf.GeneratedMessageLite<
          GetKeyWellKnownJwksJsonResponse, GetKeyWellKnownJwksJsonResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse)
      GetKeyWellKnownJwksJsonResponseOrBuilder {
    private GetKeyWellKnownJwksJsonResponse() {
      data_ = emptyProtobufList();
    }
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> data_;
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> getDataList() {
      return data_;
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    public java.util.List<? extends ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKeyOrBuilder> 
        getDataOrBuilderList() {
      return data_;
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    @java.lang.Override
    public int getDataCount() {
      return data_.size();
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    @java.lang.Override
    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getData(int index) {
      return data_.get(index);
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKeyOrBuilder getDataOrBuilder(
        int index) {
      return data_.get(index);
    }
    private void ensureDataIsMutable() {
      com.google.protobuf.Internal.ProtobufList<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> tmp = data_;
      if (!tmp.isModifiable()) {
        data_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    private void setData(
        int index, ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
      value.getClass();
  ensureDataIsMutable();
      data_.set(index, value);
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    private void addData(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
      value.getClass();
  ensureDataIsMutable();
      data_.add(value);
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    private void addData(
        int index, ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
      value.getClass();
  ensureDataIsMutable();
      data_.add(index, value);
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    private void addAllData(
        java.lang.Iterable<? extends ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> values) {
      ensureDataIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, data_);
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    private void clearData() {
      data_ = emptyProtobufList();
    }
    /**
     * <pre>
     * Список ключей
     * </pre>
     *
     * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
     */
    private void removeData(int index) {
      ensureDataIsMutable();
      data_.remove(index);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос на получение публичных ключей
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponseOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> getDataList() {
        return java.util.Collections.unmodifiableList(
            instance.getDataList());
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      @java.lang.Override
      public int getDataCount() {
        return instance.getDataCount();
      }/**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      @java.lang.Override
      public ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey getData(int index) {
        return instance.getData(index);
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder setData(
          int index, ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
        copyOnWrite();
        instance.setData(index, value);
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder setData(
          int index, ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.Builder builderForValue) {
        copyOnWrite();
        instance.setData(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder addData(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
        copyOnWrite();
        instance.addData(value);
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder addData(
          int index, ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey value) {
        copyOnWrite();
        instance.addData(index, value);
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder addData(
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.Builder builderForValue) {
        copyOnWrite();
        instance.addData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder addData(
          int index, ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.Builder builderForValue) {
        copyOnWrite();
        instance.addData(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder addAllData(
          java.lang.Iterable<? extends ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey> values) {
        copyOnWrite();
        instance.addAllData(values);
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }
      /**
       * <pre>
       * Список ключей
       * </pre>
       *
       * <code>repeated .keyapis.jwks.v1.KeyInfo.PublicKey data = 1 [json_name = "keys"];</code>
       */
      public Builder removeData(int index) {
        copyOnWrite();
        instance.removeData(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "data_",
              ru.keyapis.jwks.v1.KeyapisJwksV1Proto.KeyInfo.PublicKey.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse DEFAULT_INSTANCE;
    static {
      GetKeyWellKnownJwksJsonResponse defaultInstance = new GetKeyWellKnownJwksJsonResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetKeyWellKnownJwksJsonResponse.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.GetKeyWellKnownJwksJsonResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetKeyWellKnownJwksJsonResponse> PARSER;

    public static com.google.protobuf.Parser<GetKeyWellKnownJwksJsonResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ValidationErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.jwks.v1.ValidationError)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Путь к полю в формате наименования прото
     * </pre>
     *
     * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The path.
     */
    java.lang.String getPath();
    /**
     * <pre>
     * Путь к полю в формате наименования прото
     * </pre>
     *
     * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for path.
     */
    com.google.protobuf.ByteString
        getPathBytes();

    /**
     * <pre>
     * Валидационное сообщение
     * </pre>
     *
     * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <pre>
     * Валидационное сообщение
     * </pre>
     *
     * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * <pre>
   * Ошибки валидации.
   * Эти проверки выполняются до обращения в базу данных
   * </pre>
   *
   * Protobuf type {@code keyapis.jwks.v1.ValidationError}
   */
  public  static final class ValidationError extends
      com.google.protobuf.GeneratedMessageLite<
          ValidationError, ValidationError.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.jwks.v1.ValidationError)
      ValidationErrorOrBuilder {
    private ValidationError() {
      path_ = "";
      message_ = "";
    }
    public static final int PATH_FIELD_NUMBER = 1;
    private java.lang.String path_;
    /**
     * <pre>
     * Путь к полю в формате наименования прото
     * </pre>
     *
     * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The path.
     */
    @java.lang.Override
    public java.lang.String getPath() {
      return path_;
    }
    /**
     * <pre>
     * Путь к полю в формате наименования прото
     * </pre>
     *
     * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for path.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPathBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(path_);
    }
    /**
     * <pre>
     * Путь к полю в формате наименования прото
     * </pre>
     *
     * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The path to set.
     */
    private void setPath(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      path_ = value;
    }
    /**
     * <pre>
     * Путь к полю в формате наименования прото
     * </pre>
     *
     * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearPath() {

      path_ = getDefaultInstance().getPath();
    }
    /**
     * <pre>
     * Путь к полю в формате наименования прото
     * </pre>
     *
     * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for path to set.
     */
    private void setPathBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      path_ = value.toStringUtf8();

    }

    public static final int MESSAGE_FIELD_NUMBER = 2;
    private java.lang.String message_;
    /**
     * <pre>
     * Валидационное сообщение
     * </pre>
     *
     * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      return message_;
    }
    /**
     * <pre>
     * Валидационное сообщение
     * </pre>
     *
     * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(message_);
    }
    /**
     * <pre>
     * Валидационное сообщение
     * </pre>
     *
     * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The message to set.
     */
    private void setMessage(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      message_ = value;
    }
    /**
     * <pre>
     * Валидационное сообщение
     * </pre>
     *
     * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearMessage() {

      message_ = getDefaultInstance().getMessage();
    }
    /**
     * <pre>
     * Валидационное сообщение
     * </pre>
     *
     * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for message to set.
     */
    private void setMessageBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      message_ = value.toStringUtf8();

    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ошибки валидации.
     * Эти проверки выполняются до обращения в базу данных
     * </pre>
     *
     * Protobuf type {@code keyapis.jwks.v1.ValidationError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.jwks.v1.ValidationError)
        ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationErrorOrBuilder {
      // Construct using ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Путь к полю в формате наименования прото
       * </pre>
       *
       * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The path.
       */
      @java.lang.Override
      public java.lang.String getPath() {
        return instance.getPath();
      }
      /**
       * <pre>
       * Путь к полю в формате наименования прото
       * </pre>
       *
       * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for path.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPathBytes() {
        return instance.getPathBytes();
      }
      /**
       * <pre>
       * Путь к полю в формате наименования прото
       * </pre>
       *
       * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The path to set.
       * @return This builder for chaining.
       */
      public Builder setPath(
          java.lang.String value) {
        copyOnWrite();
        instance.setPath(value);
        return this;
      }
      /**
       * <pre>
       * Путь к полю в формате наименования прото
       * </pre>
       *
       * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearPath() {
        copyOnWrite();
        instance.clearPath();
        return this;
      }
      /**
       * <pre>
       * Путь к полю в формате наименования прото
       * </pre>
       *
       * <code>string path = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for path to set.
       * @return This builder for chaining.
       */
      public Builder setPathBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPathBytes(value);
        return this;
      }

      /**
       * <pre>
       * Валидационное сообщение
       * </pre>
       *
       * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The message.
       */
      @java.lang.Override
      public java.lang.String getMessage() {
        return instance.getMessage();
      }
      /**
       * <pre>
       * Валидационное сообщение
       * </pre>
       *
       * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for message.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMessageBytes() {
        return instance.getMessageBytes();
      }
      /**
       * <pre>
       * Валидационное сообщение
       * </pre>
       *
       * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        copyOnWrite();
        instance.setMessage(value);
        return this;
      }
      /**
       * <pre>
       * Валидационное сообщение
       * </pre>
       *
       * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        copyOnWrite();
        instance.clearMessage();
        return this;
      }
      /**
       * <pre>
       * Валидационное сообщение
       * </pre>
       *
       * <code>string message = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMessageBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.jwks.v1.ValidationError)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "path_",
              "message_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.jwks.v1.ValidationError)
    private static final ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError DEFAULT_INSTANCE;
    static {
      ValidationError defaultInstance = new ValidationError();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ValidationError.class, defaultInstance);
    }

    public static ru.keyapis.jwks.v1.KeyapisJwksV1Proto.ValidationError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ValidationError> PARSER;

    public static com.google.protobuf.Parser<ValidationError> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
