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

package ru.keyapis.identity_b2b.v1;

public final class KeyapisIdentityB2bV1Proto {
  private KeyapisIdentityB2bV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface UserTokenOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.UserToken)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Токен
     * </pre>
     *
     * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The accessToken.
     */
    java.lang.String getAccessToken();
    /**
     * <pre>
     * Токен
     * </pre>
     *
     * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for accessToken.
     */
    com.google.protobuf.ByteString
        getAccessTokenBytes();

    /**
     * <pre>
     * Окончание действия токена
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the expiredAt field is set.
     */
    boolean hasExpiredAt();
    /**
     * <pre>
     * Окончание действия токена
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The expiredAt.
     */
    com.google.protobuf.Timestamp getExpiredAt();
    /**
     * <pre>
     * Окончание действия токена
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getExpiredAtOrBuilder();
  }
  /**
   * <pre>
   * Информация о токене пользователя
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.UserToken}
   */
  public static final class UserToken extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.UserToken)
      UserTokenOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UserToken.newBuilder() to construct.
    private UserToken(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UserToken() {
      accessToken_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UserToken();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_UserToken_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_UserToken_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder.class);
    }

    public static final int ACCESS_TOKEN_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object accessToken_ = "";
    /**
     * <pre>
     * Токен
     * </pre>
     *
     * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The accessToken.
     */
    @java.lang.Override
    public java.lang.String getAccessToken() {
      java.lang.Object ref = accessToken_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        accessToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Токен
     * </pre>
     *
     * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for accessToken.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAccessTokenBytes() {
      java.lang.Object ref = accessToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accessToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXPIRED_AT_FIELD_NUMBER = 2;
    private com.google.protobuf.Timestamp expiredAt_;
    /**
     * <pre>
     * Окончание действия токена
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the expiredAt field is set.
     */
    @java.lang.Override
    public boolean hasExpiredAt() {
      return expiredAt_ != null;
    }
    /**
     * <pre>
     * Окончание действия токена
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The expiredAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getExpiredAt() {
      return expiredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expiredAt_;
    }
    /**
     * <pre>
     * Окончание действия токена
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getExpiredAtOrBuilder() {
      return expiredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expiredAt_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(accessToken_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, accessToken_);
      }
      if (expiredAt_ != null) {
        output.writeMessage(2, getExpiredAt());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(accessToken_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, accessToken_);
      }
      if (expiredAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getExpiredAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) obj;

      if (!getAccessToken()
          .equals(other.getAccessToken())) return false;
      if (hasExpiredAt() != other.hasExpiredAt()) return false;
      if (hasExpiredAt()) {
        if (!getExpiredAt()
            .equals(other.getExpiredAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ACCESS_TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getAccessToken().hashCode();
      if (hasExpiredAt()) {
        hash = (37 * hash) + EXPIRED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getExpiredAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Информация о токене пользователя
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.UserToken}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.UserToken)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_UserToken_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_UserToken_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        accessToken_ = "";
        expiredAt_ = null;
        if (expiredAtBuilder_ != null) {
          expiredAtBuilder_.dispose();
          expiredAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_UserToken_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.accessToken_ = accessToken_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.expiredAt_ = expiredAtBuilder_ == null
              ? expiredAt_
              : expiredAtBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance()) return this;
        if (!other.getAccessToken().isEmpty()) {
          accessToken_ = other.accessToken_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasExpiredAt()) {
          mergeExpiredAt(other.getExpiredAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                accessToken_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getExpiredAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object accessToken_ = "";
      /**
       * <pre>
       * Токен
       * </pre>
       *
       * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The accessToken.
       */
      public java.lang.String getAccessToken() {
        java.lang.Object ref = accessToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accessToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Токен
       * </pre>
       *
       * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for accessToken.
       */
      public com.google.protobuf.ByteString
          getAccessTokenBytes() {
        java.lang.Object ref = accessToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accessToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Токен
       * </pre>
       *
       * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The accessToken to set.
       * @return This builder for chaining.
       */
      public Builder setAccessToken(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        accessToken_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Токен
       * </pre>
       *
       * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearAccessToken() {
        accessToken_ = getDefaultInstance().getAccessToken();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Токен
       * </pre>
       *
       * <code>string access_token = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for accessToken to set.
       * @return This builder for chaining.
       */
      public Builder setAccessTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        accessToken_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp expiredAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> expiredAtBuilder_;
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the expiredAt field is set.
       */
      public boolean hasExpiredAt() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The expiredAt.
       */
      public com.google.protobuf.Timestamp getExpiredAt() {
        if (expiredAtBuilder_ == null) {
          return expiredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expiredAt_;
        } else {
          return expiredAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setExpiredAt(com.google.protobuf.Timestamp value) {
        if (expiredAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expiredAt_ = value;
        } else {
          expiredAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setExpiredAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (expiredAtBuilder_ == null) {
          expiredAt_ = builderForValue.build();
        } else {
          expiredAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeExpiredAt(com.google.protobuf.Timestamp value) {
        if (expiredAtBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            expiredAt_ != null &&
            expiredAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getExpiredAtBuilder().mergeFrom(value);
          } else {
            expiredAt_ = value;
          }
        } else {
          expiredAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearExpiredAt() {
        bitField0_ = (bitField0_ & ~0x00000002);
        expiredAt_ = null;
        if (expiredAtBuilder_ != null) {
          expiredAtBuilder_.dispose();
          expiredAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getExpiredAtBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getExpiredAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getExpiredAtOrBuilder() {
        if (expiredAtBuilder_ != null) {
          return expiredAtBuilder_.getMessageOrBuilder();
        } else {
          return expiredAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : expiredAt_;
        }
      }
      /**
       * <pre>
       * Окончание действия токена
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getExpiredAtFieldBuilder() {
        if (expiredAtBuilder_ == null) {
          expiredAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getExpiredAt(),
                  getParentForChildren(),
                  isClean());
          expiredAt_ = null;
        }
        return expiredAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.UserToken)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.UserToken)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserToken>
        PARSER = new com.google.protobuf.AbstractParser<UserToken>() {
      @java.lang.Override
      public UserToken parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<UserToken> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserToken> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CaptchaOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.Captcha)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Ссылка на капчу
     * </pre>
     *
     * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The url.
     */
    java.lang.String getUrl();
    /**
     * <pre>
     * Ссылка на капчу
     * </pre>
     *
     * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for url.
     */
    com.google.protobuf.ByteString
        getUrlBytes();
  }
  /**
   * <pre>
   * Капча
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.Captcha}
   */
  public static final class Captcha extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.Captcha)
      CaptchaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Captcha.newBuilder() to construct.
    private Captcha(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Captcha() {
      id_ = "";
      url_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Captcha();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Captcha_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Captcha_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object id_ = "";
    /**
     * <pre>
     * Идентификатор капчи
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор капчи
     * </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() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int URL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object url_ = "";
    /**
     * <pre>
     * Ссылка на капчу
     * </pre>
     *
     * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The url.
     */
    @java.lang.Override
    public java.lang.String getUrl() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        url_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Ссылка на капчу
     * </pre>
     *
     * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for url.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUrlBytes() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        url_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, url_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, url_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (!getUrl()
          .equals(other.getUrl())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + URL_FIELD_NUMBER;
      hash = (53 * hash) + getUrl().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Капча
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.Captcha}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.Captcha)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Captcha_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Captcha_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = "";
        url_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Captcha_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.url_ = url_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getUrl().isEmpty()) {
          url_ = other.url_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                url_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * <pre>
       * Идентификатор капчи
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </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) {
        if (value == null) { throw new NullPointerException(); }
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        id_ = getDefaultInstance().getId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object url_ = "";
      /**
       * <pre>
       * Ссылка на капчу
       * </pre>
       *
       * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The url.
       */
      public java.lang.String getUrl() {
        java.lang.Object ref = url_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          url_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Ссылка на капчу
       * </pre>
       *
       * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for url.
       */
      public com.google.protobuf.ByteString
          getUrlBytes() {
        java.lang.Object ref = url_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          url_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Ссылка на капчу
       * </pre>
       *
       * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The url to set.
       * @return This builder for chaining.
       */
      public Builder setUrl(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        url_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ссылка на капчу
       * </pre>
       *
       * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearUrl() {
        url_ = getDefaultInstance().getUrl();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ссылка на капчу
       * </pre>
       *
       * <code>string url = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for url to set.
       * @return This builder for chaining.
       */
      public Builder setUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        url_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.Captcha)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.Captcha)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Captcha>
        PARSER = new com.google.protobuf.AbstractParser<Captcha>() {
      @java.lang.Override
      public Captcha parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<Captcha> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Captcha> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CaptchaAnswerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.CaptchaAnswer)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    java.lang.String getCode();
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    com.google.protobuf.ByteString
        getCodeBytes();
  }
  /**
   * <pre>
   * Ответ на капчу
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.CaptchaAnswer}
   */
  public static final class CaptchaAnswer extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.CaptchaAnswer)
      CaptchaAnswerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CaptchaAnswer.newBuilder() to construct.
    private CaptchaAnswer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CaptchaAnswer() {
      id_ = "";
      code_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CaptchaAnswer();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder.class);
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.CaptchaAnswer.Error)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
       * @return Whether the captcha field is set.
       */
      boolean hasCaptcha();
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
       * @return The captcha.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getCaptcha();
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder getCaptchaOrBuilder();

      /**
       * <pre>
       * Некорректный ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
       * @return Whether the wrongAnswer field is set.
       */
      boolean hasWrongAnswer();
      /**
       * <pre>
       * Некорректный ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
       * @return The wrongAnswer.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer getWrongAnswer();
      /**
       * <pre>
       * Некорректный ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswerOrBuilder getWrongAnswerOrBuilder();

      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка ответа на капчу
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.CaptchaAnswer.Error}
     */
    public static final class Error extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.CaptchaAnswer.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder.class);
      }

      public interface WrongAnswerOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer)
          com.google.protobuf.MessageOrBuilder {
      }
      /**
       * <pre>
       * Некорректный ответ на капчу
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer}
       */
      public static final class WrongAnswer extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer)
          WrongAnswerOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use WrongAnswer.newBuilder() to construct.
        private WrongAnswer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private WrongAnswer() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new WrongAnswer();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.Builder.class);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer)) {
            return super.equals(obj);
          }
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) obj;

          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * Protobuf type {@code keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer)
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswerOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.Builder.class);
          }

          // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.newBuilder()
          private Builder() {

          }

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer getDefaultInstanceForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer build() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer buildPartial() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer(this);
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) {
              return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer other) {
            if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance()) return this;
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer)
        }

        // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer)
        private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer();
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<WrongAnswer>
            PARSER = new com.google.protobuf.AbstractParser<WrongAnswer>() {
          @java.lang.Override
          public WrongAnswer parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };

        public static com.google.protobuf.Parser<WrongAnswer> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<WrongAnswer> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        WRONG_ANSWER(2),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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 2: return WRONG_ANSWER;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int CAPTCHA_FIELD_NUMBER = 1;
      private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha captcha_;
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
       * @return Whether the captcha field is set.
       */
      @java.lang.Override
      public boolean hasCaptcha() {
        return captcha_ != null;
      }
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
       * @return The captcha.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getCaptcha() {
        return captcha_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
      }
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder getCaptchaOrBuilder() {
        return captcha_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
      }

      public static final int WRONG_ANSWER_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Некорректный ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
       * @return Whether the wrongAnswer field is set.
       */
      @java.lang.Override
      public boolean hasWrongAnswer() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Некорректный ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
       * @return The wrongAnswer.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer getWrongAnswer() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance();
      }
      /**
       * <pre>
       * Некорректный ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswerOrBuilder getWrongAnswerOrBuilder() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (captcha_ != null) {
          output.writeMessage(1, getCaptcha());
        }
        if (reasonCase_ == 2) {
          output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (captcha_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getCaptcha());
        }
        if (reasonCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) obj;

        if (hasCaptcha() != other.hasCaptcha()) return false;
        if (hasCaptcha()) {
          if (!getCaptcha()
              .equals(other.getCaptcha())) return false;
        }
        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 2:
            if (!getWrongAnswer()
                .equals(other.getWrongAnswer())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasCaptcha()) {
          hash = (37 * hash) + CAPTCHA_FIELD_NUMBER;
          hash = (53 * hash) + getCaptcha().hashCode();
        }
        switch (reasonCase_) {
          case 2:
            hash = (37 * hash) + WRONG_ANSWER_FIELD_NUMBER;
            hash = (53 * hash) + getWrongAnswer().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка ответа на капчу
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.CaptchaAnswer.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.CaptchaAnswer.Error)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          captcha_ = null;
          if (captchaBuilder_ != null) {
            captchaBuilder_.dispose();
            captchaBuilder_ = null;
          }
          if (wrongAnswerBuilder_ != null) {
            wrongAnswerBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.captcha_ = captchaBuilder_ == null
                ? captcha_
                : captchaBuilder_.build();
          }
        }

        private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 2 &&
              wrongAnswerBuilder_ != null) {
            result.reason_ = wrongAnswerBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance()) return this;
          if (other.hasCaptcha()) {
            mergeCaptcha(other.getCaptcha());
          }
          switch (other.getReasonCase()) {
            case WRONG_ANSWER: {
              mergeWrongAnswer(other.getWrongAnswer());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getCaptchaFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getWrongAnswerFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 2;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha captcha_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder> captchaBuilder_;
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         * @return Whether the captcha field is set.
         */
        public boolean hasCaptcha() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         * @return The captcha.
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getCaptcha() {
          if (captchaBuilder_ == null) {
            return captcha_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
          } else {
            return captchaBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         */
        public Builder setCaptcha(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha value) {
          if (captchaBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            captcha_ = value;
          } else {
            captchaBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         */
        public Builder setCaptcha(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder builderForValue) {
          if (captchaBuilder_ == null) {
            captcha_ = builderForValue.build();
          } else {
            captchaBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         */
        public Builder mergeCaptcha(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha value) {
          if (captchaBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
              captcha_ != null &&
              captcha_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance()) {
              getCaptchaBuilder().mergeFrom(value);
            } else {
              captcha_ = value;
            }
          } else {
            captchaBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         */
        public Builder clearCaptcha() {
          bitField0_ = (bitField0_ & ~0x00000001);
          captcha_ = null;
          if (captchaBuilder_ != null) {
            captchaBuilder_.dispose();
            captchaBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder getCaptchaBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getCaptchaFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder getCaptchaOrBuilder() {
          if (captchaBuilder_ != null) {
            return captchaBuilder_.getMessageOrBuilder();
          } else {
            return captcha_ == null ?
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
          }
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder> 
            getCaptchaFieldBuilder() {
          if (captchaBuilder_ == null) {
            captchaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder>(
                    getCaptcha(),
                    getParentForChildren(),
                    isClean());
            captcha_ = null;
          }
          return captchaBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswerOrBuilder> wrongAnswerBuilder_;
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         * @return Whether the wrongAnswer field is set.
         */
        @java.lang.Override
        public boolean hasWrongAnswer() {
          return reasonCase_ == 2;
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         * @return The wrongAnswer.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer getWrongAnswer() {
          if (wrongAnswerBuilder_ == null) {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance();
          } else {
            if (reasonCase_ == 2) {
              return wrongAnswerBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         */
        public Builder setWrongAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer value) {
          if (wrongAnswerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            wrongAnswerBuilder_.setMessage(value);
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         */
        public Builder setWrongAnswer(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.Builder builderForValue) {
          if (wrongAnswerBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            wrongAnswerBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         */
        public Builder mergeWrongAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer value) {
          if (wrongAnswerBuilder_ == null) {
            if (reasonCase_ == 2 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 2) {
              wrongAnswerBuilder_.mergeFrom(value);
            } else {
              wrongAnswerBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         */
        public Builder clearWrongAnswer() {
          if (wrongAnswerBuilder_ == null) {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
            }
            wrongAnswerBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.Builder getWrongAnswerBuilder() {
          return getWrongAnswerFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswerOrBuilder getWrongAnswerOrBuilder() {
          if ((reasonCase_ == 2) && (wrongAnswerBuilder_ != null)) {
            return wrongAnswerBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Некорректный ответ на капчу
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error.WrongAnswer wrong_answer = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswerOrBuilder> 
            getWrongAnswerFieldBuilder() {
          if (wrongAnswerBuilder_ == null) {
            if (!(reasonCase_ == 2)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.getDefaultInstance();
            }
            wrongAnswerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswerOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.WrongAnswer) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 2;
          onChanged();
          return wrongAnswerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.CaptchaAnswer.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.CaptchaAnswer.Error)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object id_ = "";
    /**
     * <pre>
     * Идентификатор капчи
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор капчи
     * </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() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CODE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object code_ = "";
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    @java.lang.Override
    public java.lang.String getCode() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        code_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCodeBytes() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        code_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, code_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, code_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (!getCode()
          .equals(other.getCode())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + CODE_FIELD_NUMBER;
      hash = (53 * hash) + getCode().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.CaptchaAnswer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.CaptchaAnswer)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = "";
        code_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.code_ = code_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getCode().isEmpty()) {
          code_ = other.code_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                code_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * <pre>
       * Идентификатор капчи
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </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) {
        if (value == null) { throw new NullPointerException(); }
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </pre>
       *
       * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        id_ = getDefaultInstance().getId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор капчи
       * </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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object code_ = "";
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The code.
       */
      public java.lang.String getCode() {
        java.lang.Object ref = code_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          code_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for code.
       */
      public com.google.protobuf.ByteString
          getCodeBytes() {
        java.lang.Object ref = code_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          code_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The code to set.
       * @return This builder for chaining.
       */
      public Builder setCode(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        code_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCode() {
        code_ = getDefaultInstance().getCode();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for code to set.
       * @return This builder for chaining.
       */
      public Builder setCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        code_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.CaptchaAnswer)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.CaptchaAnswer)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CaptchaAnswer>
        PARSER = new com.google.protobuf.AbstractParser<CaptchaAnswer>() {
      @java.lang.Override
      public CaptchaAnswer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<CaptchaAnswer> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CaptchaAnswer> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OtpCodeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.OtpCode)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    java.lang.String getCodeId();
    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    com.google.protobuf.ByteString
        getCodeIdBytes();

    /**
     * <pre>
     * Время в секундах, оставшееся до возможности отправки следующего кода
     * </pre>
     *
     * <code>int32 timeout = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The timeout.
     */
    int getTimeout();
  }
  /**
   * <pre>
   * Информация о вводе ОТП-кода
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode}
   */
  public static final class OtpCode extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.OtpCode)
      OtpCodeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OtpCode.newBuilder() to construct.
    private OtpCode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OtpCode() {
      codeId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new OtpCode();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Builder.class);
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.OtpCode.Error)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Код истек
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
       * @return Whether the lifeTimeExpired field is set.
       */
      boolean hasLifeTimeExpired();
      /**
       * <pre>
       * Код истек
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
       * @return The lifeTimeExpired.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired getLifeTimeExpired();
      /**
       * <pre>
       * Код истек
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpiredOrBuilder getLifeTimeExpiredOrBuilder();

      /**
       * <pre>
       * Попыток больше нет
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
       * @return Whether the noAttempts field is set.
       */
      boolean hasNoAttempts();
      /**
       * <pre>
       * Попыток больше нет
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
       * @return The noAttempts.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts getNoAttempts();
      /**
       * <pre>
       * Попыток больше нет
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttemptsOrBuilder getNoAttemptsOrBuilder();

      /**
       * <pre>
       * Адрес для отправки кода не найден.
       * В текущей реализации, эту ошибку невозможно получить
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
       * @return Whether the addressNotFound field is set.
       */
      boolean hasAddressNotFound();
      /**
       * <pre>
       * Адрес для отправки кода не найден.
       * В текущей реализации, эту ошибку невозможно получить
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
       * @return The addressNotFound.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound getAddressNotFound();
      /**
       * <pre>
       * Адрес для отправки кода не найден.
       * В текущей реализации, эту ошибку невозможно получить
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFoundOrBuilder getAddressNotFoundOrBuilder();

      /**
       * <pre>
       * Неправильный ОТП-код
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
       * @return Whether the invalidCode field is set.
       */
      boolean hasInvalidCode();
      /**
       * <pre>
       * Неправильный ОТП-код
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
       * @return The invalidCode.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode getInvalidCode();
      /**
       * <pre>
       * Неправильный ОТП-код
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCodeOrBuilder getInvalidCodeOrBuilder();

      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка ответа на капчу
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error}
     */
    public static final class Error extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.OtpCode.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder.class);
      }

      public interface LifeTimeExpiredOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired)
          com.google.protobuf.MessageOrBuilder {
      }
      /**
       * <pre>
       * Код истек
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired}
       */
      public static final class LifeTimeExpired extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired)
          LifeTimeExpiredOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use LifeTimeExpired.newBuilder() to construct.
        private LifeTimeExpired(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private LifeTimeExpired() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new LifeTimeExpired();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.Builder.class);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired)) {
            return super.equals(obj);
          }
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) obj;

          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired)
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpiredOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.Builder.class);
          }

          // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.newBuilder()
          private Builder() {

          }

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired getDefaultInstanceForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired build() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired buildPartial() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired(this);
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) {
              return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired other) {
            if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance()) return this;
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired)
        }

        // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired)
        private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired();
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<LifeTimeExpired>
            PARSER = new com.google.protobuf.AbstractParser<LifeTimeExpired>() {
          @java.lang.Override
          public LifeTimeExpired parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };

        public static com.google.protobuf.Parser<LifeTimeExpired> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<LifeTimeExpired> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface NoAttemptsOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts)
          com.google.protobuf.MessageOrBuilder {
      }
      /**
       * <pre>
       * Попыток больше нет
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts}
       */
      public static final class NoAttempts extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts)
          NoAttemptsOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use NoAttempts.newBuilder() to construct.
        private NoAttempts(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private NoAttempts() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new NoAttempts();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.Builder.class);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts)) {
            return super.equals(obj);
          }
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) obj;

          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts)
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttemptsOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.Builder.class);
          }

          // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.newBuilder()
          private Builder() {

          }

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts getDefaultInstanceForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts build() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts buildPartial() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts(this);
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) {
              return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts other) {
            if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance()) return this;
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts)
        }

        // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts)
        private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts();
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<NoAttempts>
            PARSER = new com.google.protobuf.AbstractParser<NoAttempts>() {
          @java.lang.Override
          public NoAttempts parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };

        public static com.google.protobuf.Parser<NoAttempts> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<NoAttempts> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface AddressNotFoundOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound)
          com.google.protobuf.MessageOrBuilder {
      }
      /**
       * <pre>
       * Адрес для отправки кода не найден
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound}
       */
      public static final class AddressNotFound extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound)
          AddressNotFoundOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use AddressNotFound.newBuilder() to construct.
        private AddressNotFound(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private AddressNotFound() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new AddressNotFound();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.Builder.class);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound)) {
            return super.equals(obj);
          }
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) obj;

          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден
         * </pre>
         *
         * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound)
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFoundOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.Builder.class);
          }

          // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.newBuilder()
          private Builder() {

          }

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound getDefaultInstanceForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound build() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound buildPartial() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound(this);
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) {
              return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound other) {
            if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance()) return this;
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound)
        }

        // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound)
        private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound();
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<AddressNotFound>
            PARSER = new com.google.protobuf.AbstractParser<AddressNotFound>() {
          @java.lang.Override
          public AddressNotFound parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };

        public static com.google.protobuf.Parser<AddressNotFound> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<AddressNotFound> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface InvalidCodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode)
          com.google.protobuf.MessageOrBuilder {
      }
      /**
       * <pre>
       * Неправильный ОТП-код
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode}
       */
      public static final class InvalidCode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode)
          InvalidCodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use InvalidCode.newBuilder() to construct.
        private InvalidCode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private InvalidCode() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new InvalidCode();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.Builder.class);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode)) {
            return super.equals(obj);
          }
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) obj;

          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode)
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.Builder.class);
          }

          // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.newBuilder()
          private Builder() {

          }

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode getDefaultInstanceForType() {
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode build() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode buildPartial() {
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode(this);
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) {
              return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode other) {
            if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance()) return this;
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode)
        }

        // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode)
        private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode();
        }

        public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<InvalidCode>
            PARSER = new com.google.protobuf.AbstractParser<InvalidCode>() {
          @java.lang.Override
          public InvalidCode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };

        public static com.google.protobuf.Parser<InvalidCode> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<InvalidCode> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        LIFE_TIME_EXPIRED(1),
        NO_ATTEMPTS(2),
        ADDRESS_NOT_FOUND(3),
        INVALID_CODE(4),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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 LIFE_TIME_EXPIRED;
            case 2: return NO_ATTEMPTS;
            case 3: return ADDRESS_NOT_FOUND;
            case 4: return INVALID_CODE;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int LIFE_TIME_EXPIRED_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Код истек
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
       * @return Whether the lifeTimeExpired field is set.
       */
      @java.lang.Override
      public boolean hasLifeTimeExpired() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Код истек
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
       * @return The lifeTimeExpired.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired getLifeTimeExpired() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance();
      }
      /**
       * <pre>
       * Код истек
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpiredOrBuilder getLifeTimeExpiredOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance();
      }

      public static final int NO_ATTEMPTS_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Попыток больше нет
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
       * @return Whether the noAttempts field is set.
       */
      @java.lang.Override
      public boolean hasNoAttempts() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Попыток больше нет
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
       * @return The noAttempts.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts getNoAttempts() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance();
      }
      /**
       * <pre>
       * Попыток больше нет
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttemptsOrBuilder getNoAttemptsOrBuilder() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance();
      }

      public static final int ADDRESS_NOT_FOUND_FIELD_NUMBER = 3;
      /**
       * <pre>
       * Адрес для отправки кода не найден.
       * В текущей реализации, эту ошибку невозможно получить
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
       * @return Whether the addressNotFound field is set.
       */
      @java.lang.Override
      public boolean hasAddressNotFound() {
        return reasonCase_ == 3;
      }
      /**
       * <pre>
       * Адрес для отправки кода не найден.
       * В текущей реализации, эту ошибку невозможно получить
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
       * @return The addressNotFound.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound getAddressNotFound() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance();
      }
      /**
       * <pre>
       * Адрес для отправки кода не найден.
       * В текущей реализации, эту ошибку невозможно получить
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFoundOrBuilder getAddressNotFoundOrBuilder() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance();
      }

      public static final int INVALID_CODE_FIELD_NUMBER = 4;
      /**
       * <pre>
       * Неправильный ОТП-код
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
       * @return Whether the invalidCode field is set.
       */
      @java.lang.Override
      public boolean hasInvalidCode() {
        return reasonCase_ == 4;
      }
      /**
       * <pre>
       * Неправильный ОТП-код
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
       * @return The invalidCode.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode getInvalidCode() {
        if (reasonCase_ == 4) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance();
      }
      /**
       * <pre>
       * Неправильный ОТП-код
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCodeOrBuilder getInvalidCodeOrBuilder() {
        if (reasonCase_ == 4) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_);
        }
        if (reasonCase_ == 2) {
          output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_);
        }
        if (reasonCase_ == 3) {
          output.writeMessage(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_);
        }
        if (reasonCase_ == 4) {
          output.writeMessage(4, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_);
        }
        if (reasonCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_);
        }
        if (reasonCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_);
        }
        if (reasonCase_ == 4) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getLifeTimeExpired()
                .equals(other.getLifeTimeExpired())) return false;
            break;
          case 2:
            if (!getNoAttempts()
                .equals(other.getNoAttempts())) return false;
            break;
          case 3:
            if (!getAddressNotFound()
                .equals(other.getAddressNotFound())) return false;
            break;
          case 4:
            if (!getInvalidCode()
                .equals(other.getInvalidCode())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + LIFE_TIME_EXPIRED_FIELD_NUMBER;
            hash = (53 * hash) + getLifeTimeExpired().hashCode();
            break;
          case 2:
            hash = (37 * hash) + NO_ATTEMPTS_FIELD_NUMBER;
            hash = (53 * hash) + getNoAttempts().hashCode();
            break;
          case 3:
            hash = (37 * hash) + ADDRESS_NOT_FOUND_FIELD_NUMBER;
            hash = (53 * hash) + getAddressNotFound().hashCode();
            break;
          case 4:
            hash = (37 * hash) + INVALID_CODE_FIELD_NUMBER;
            hash = (53 * hash) + getInvalidCode().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка ответа на капчу
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.OtpCode.Error)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (lifeTimeExpiredBuilder_ != null) {
            lifeTimeExpiredBuilder_.clear();
          }
          if (noAttemptsBuilder_ != null) {
            noAttemptsBuilder_.clear();
          }
          if (addressNotFoundBuilder_ != null) {
            addressNotFoundBuilder_.clear();
          }
          if (invalidCodeBuilder_ != null) {
            invalidCodeBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              lifeTimeExpiredBuilder_ != null) {
            result.reason_ = lifeTimeExpiredBuilder_.build();
          }
          if (reasonCase_ == 2 &&
              noAttemptsBuilder_ != null) {
            result.reason_ = noAttemptsBuilder_.build();
          }
          if (reasonCase_ == 3 &&
              addressNotFoundBuilder_ != null) {
            result.reason_ = addressNotFoundBuilder_.build();
          }
          if (reasonCase_ == 4 &&
              invalidCodeBuilder_ != null) {
            result.reason_ = invalidCodeBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case LIFE_TIME_EXPIRED: {
              mergeLifeTimeExpired(other.getLifeTimeExpired());
              break;
            }
            case NO_ATTEMPTS: {
              mergeNoAttempts(other.getNoAttempts());
              break;
            }
            case ADDRESS_NOT_FOUND: {
              mergeAddressNotFound(other.getAddressNotFound());
              break;
            }
            case INVALID_CODE: {
              mergeInvalidCode(other.getInvalidCode());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getLifeTimeExpiredFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getNoAttemptsFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 2;
                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getAddressNotFoundFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 3;
                  break;
                } // case 26
                case 34: {
                  input.readMessage(
                      getInvalidCodeFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 4;
                  break;
                } // case 34
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpiredOrBuilder> lifeTimeExpiredBuilder_;
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         * @return Whether the lifeTimeExpired field is set.
         */
        @java.lang.Override
        public boolean hasLifeTimeExpired() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         * @return The lifeTimeExpired.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired getLifeTimeExpired() {
          if (lifeTimeExpiredBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return lifeTimeExpiredBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         */
        public Builder setLifeTimeExpired(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired value) {
          if (lifeTimeExpiredBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            lifeTimeExpiredBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         */
        public Builder setLifeTimeExpired(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.Builder builderForValue) {
          if (lifeTimeExpiredBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            lifeTimeExpiredBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         */
        public Builder mergeLifeTimeExpired(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired value) {
          if (lifeTimeExpiredBuilder_ == null) {
            if (reasonCase_ == 1 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              lifeTimeExpiredBuilder_.mergeFrom(value);
            } else {
              lifeTimeExpiredBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         */
        public Builder clearLifeTimeExpired() {
          if (lifeTimeExpiredBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            lifeTimeExpiredBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.Builder getLifeTimeExpiredBuilder() {
          return getLifeTimeExpiredFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpiredOrBuilder getLifeTimeExpiredOrBuilder() {
          if ((reasonCase_ == 1) && (lifeTimeExpiredBuilder_ != null)) {
            return lifeTimeExpiredBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Код истек
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.LifeTimeExpired life_time_expired = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpiredOrBuilder> 
            getLifeTimeExpiredFieldBuilder() {
          if (lifeTimeExpiredBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.getDefaultInstance();
            }
            lifeTimeExpiredBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpiredOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.LifeTimeExpired) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return lifeTimeExpiredBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttemptsOrBuilder> noAttemptsBuilder_;
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         * @return Whether the noAttempts field is set.
         */
        @java.lang.Override
        public boolean hasNoAttempts() {
          return reasonCase_ == 2;
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         * @return The noAttempts.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts getNoAttempts() {
          if (noAttemptsBuilder_ == null) {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance();
          } else {
            if (reasonCase_ == 2) {
              return noAttemptsBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         */
        public Builder setNoAttempts(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts value) {
          if (noAttemptsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            noAttemptsBuilder_.setMessage(value);
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         */
        public Builder setNoAttempts(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.Builder builderForValue) {
          if (noAttemptsBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            noAttemptsBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         */
        public Builder mergeNoAttempts(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts value) {
          if (noAttemptsBuilder_ == null) {
            if (reasonCase_ == 2 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 2) {
              noAttemptsBuilder_.mergeFrom(value);
            } else {
              noAttemptsBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         */
        public Builder clearNoAttempts() {
          if (noAttemptsBuilder_ == null) {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
            }
            noAttemptsBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.Builder getNoAttemptsBuilder() {
          return getNoAttemptsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttemptsOrBuilder getNoAttemptsOrBuilder() {
          if ((reasonCase_ == 2) && (noAttemptsBuilder_ != null)) {
            return noAttemptsBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Попыток больше нет
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.NoAttempts no_attempts = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttemptsOrBuilder> 
            getNoAttemptsFieldBuilder() {
          if (noAttemptsBuilder_ == null) {
            if (!(reasonCase_ == 2)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.getDefaultInstance();
            }
            noAttemptsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttemptsOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.NoAttempts) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 2;
          onChanged();
          return noAttemptsBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFoundOrBuilder> addressNotFoundBuilder_;
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         * @return Whether the addressNotFound field is set.
         */
        @java.lang.Override
        public boolean hasAddressNotFound() {
          return reasonCase_ == 3;
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         * @return The addressNotFound.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound getAddressNotFound() {
          if (addressNotFoundBuilder_ == null) {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance();
          } else {
            if (reasonCase_ == 3) {
              return addressNotFoundBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         */
        public Builder setAddressNotFound(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound value) {
          if (addressNotFoundBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            addressNotFoundBuilder_.setMessage(value);
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         */
        public Builder setAddressNotFound(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.Builder builderForValue) {
          if (addressNotFoundBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            addressNotFoundBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         */
        public Builder mergeAddressNotFound(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound value) {
          if (addressNotFoundBuilder_ == null) {
            if (reasonCase_ == 3 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 3) {
              addressNotFoundBuilder_.mergeFrom(value);
            } else {
              addressNotFoundBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         */
        public Builder clearAddressNotFound() {
          if (addressNotFoundBuilder_ == null) {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
            }
            addressNotFoundBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.Builder getAddressNotFoundBuilder() {
          return getAddressNotFoundFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFoundOrBuilder getAddressNotFoundOrBuilder() {
          if ((reasonCase_ == 3) && (addressNotFoundBuilder_ != null)) {
            return addressNotFoundBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Адрес для отправки кода не найден.
         * В текущей реализации, эту ошибку невозможно получить
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.AddressNotFound address_not_found = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFoundOrBuilder> 
            getAddressNotFoundFieldBuilder() {
          if (addressNotFoundBuilder_ == null) {
            if (!(reasonCase_ == 3)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.getDefaultInstance();
            }
            addressNotFoundBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFoundOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.AddressNotFound) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 3;
          onChanged();
          return addressNotFoundBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCodeOrBuilder> invalidCodeBuilder_;
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         * @return Whether the invalidCode field is set.
         */
        @java.lang.Override
        public boolean hasInvalidCode() {
          return reasonCase_ == 4;
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         * @return The invalidCode.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode getInvalidCode() {
          if (invalidCodeBuilder_ == null) {
            if (reasonCase_ == 4) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance();
          } else {
            if (reasonCase_ == 4) {
              return invalidCodeBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         */
        public Builder setInvalidCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode value) {
          if (invalidCodeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            invalidCodeBuilder_.setMessage(value);
          }
          reasonCase_ = 4;
          return this;
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         */
        public Builder setInvalidCode(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.Builder builderForValue) {
          if (invalidCodeBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            invalidCodeBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 4;
          return this;
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         */
        public Builder mergeInvalidCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode value) {
          if (invalidCodeBuilder_ == null) {
            if (reasonCase_ == 4 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 4) {
              invalidCodeBuilder_.mergeFrom(value);
            } else {
              invalidCodeBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 4;
          return this;
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         */
        public Builder clearInvalidCode() {
          if (invalidCodeBuilder_ == null) {
            if (reasonCase_ == 4) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 4) {
              reasonCase_ = 0;
              reason_ = null;
            }
            invalidCodeBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.Builder getInvalidCodeBuilder() {
          return getInvalidCodeFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCodeOrBuilder getInvalidCodeOrBuilder() {
          if ((reasonCase_ == 4) && (invalidCodeBuilder_ != null)) {
            return invalidCodeBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 4) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Неправильный ОТП-код
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error.InvalidCode invalid_code = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCodeOrBuilder> 
            getInvalidCodeFieldBuilder() {
          if (invalidCodeBuilder_ == null) {
            if (!(reasonCase_ == 4)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.getDefaultInstance();
            }
            invalidCodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCodeOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.InvalidCode) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 4;
          onChanged();
          return invalidCodeBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.OtpCode.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.OtpCode.Error)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int CODE_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object codeId_ = "";
    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    @java.lang.Override
    public java.lang.String getCodeId() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        codeId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCodeIdBytes() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        codeId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMEOUT_FIELD_NUMBER = 2;
    private int timeout_ = 0;
    /**
     * <pre>
     * Время в секундах, оставшееся до возможности отправки следующего кода
     * </pre>
     *
     * <code>int32 timeout = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The timeout.
     */
    @java.lang.Override
    public int getTimeout() {
      return timeout_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, codeId_);
      }
      if (timeout_ != 0) {
        output.writeInt32(2, timeout_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, codeId_);
      }
      if (timeout_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, timeout_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) obj;

      if (!getCodeId()
          .equals(other.getCodeId())) return false;
      if (getTimeout()
          != other.getTimeout()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CODE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCodeId().hashCode();
      hash = (37 * hash) + TIMEOUT_FIELD_NUMBER;
      hash = (53 * hash) + getTimeout();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Информация о вводе ОТП-кода
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.OtpCode}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.OtpCode)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCodeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        codeId_ = "";
        timeout_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_OtpCode_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.codeId_ = codeId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.timeout_ = timeout_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance()) return this;
        if (!other.getCodeId().isEmpty()) {
          codeId_ = other.codeId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getTimeout() != 0) {
          setTimeout(other.getTimeout());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                codeId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                timeout_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object codeId_ = "";
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The codeId.
       */
      public java.lang.String getCodeId() {
        java.lang.Object ref = codeId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          codeId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for codeId.
       */
      public com.google.protobuf.ByteString
          getCodeIdBytes() {
        java.lang.Object ref = codeId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          codeId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        codeId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCodeId() {
        codeId_ = getDefaultInstance().getCodeId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        codeId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int timeout_ ;
      /**
       * <pre>
       * Время в секундах, оставшееся до возможности отправки следующего кода
       * </pre>
       *
       * <code>int32 timeout = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The timeout.
       */
      @java.lang.Override
      public int getTimeout() {
        return timeout_;
      }
      /**
       * <pre>
       * Время в секундах, оставшееся до возможности отправки следующего кода
       * </pre>
       *
       * <code>int32 timeout = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The timeout to set.
       * @return This builder for chaining.
       */
      public Builder setTimeout(int value) {

        timeout_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Время в секундах, оставшееся до возможности отправки следующего кода
       * </pre>
       *
       * <code>int32 timeout = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeout() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timeout_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.OtpCode)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.OtpCode)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OtpCode>
        PARSER = new com.google.protobuf.AbstractParser<OtpCode>() {
      @java.lang.Override
      public OtpCode parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<OtpCode> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<OtpCode> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SsoErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.SsoError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Пользователь временно заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
     * @return Whether the userIsTemporaryBlocked field is set.
     */
    boolean hasUserIsTemporaryBlocked();
    /**
     * <pre>
     * Пользователь временно заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
     * @return The userIsTemporaryBlocked.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked getUserIsTemporaryBlocked();
    /**
     * <pre>
     * Пользователь временно заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlockedOrBuilder getUserIsTemporaryBlockedOrBuilder();

    /**
     * <pre>
     * Пользователь не найден
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
     * @return Whether the userNotFound field is set.
     */
    boolean hasUserNotFound();
    /**
     * <pre>
     * Пользователь не найден
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
     * @return The userNotFound.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound getUserNotFound();
    /**
     * <pre>
     * Пользователь не найден
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFoundOrBuilder getUserNotFoundOrBuilder();

    /**
     * <pre>
     * Неверный пароль
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
     * @return Whether the wrongCredentials field is set.
     */
    boolean hasWrongCredentials();
    /**
     * <pre>
     * Неверный пароль
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
     * @return The wrongCredentials.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials getWrongCredentials();
    /**
     * <pre>
     * Неверный пароль
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentialsOrBuilder getWrongCredentialsOrBuilder();

    /**
     * <pre>
     * Пользователь заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
     * @return Whether the userIsBlocked field is set.
     */
    boolean hasUserIsBlocked();
    /**
     * <pre>
     * Пользователь заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
     * @return The userIsBlocked.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked getUserIsBlocked();
    /**
     * <pre>
     * Пользователь заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlockedOrBuilder getUserIsBlockedOrBuilder();

    /**
     * <pre>
     * Превышен интервал отправки кода подтверждения
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
     * @return Whether the intervalExceeded field is set.
     */
    boolean hasIntervalExceeded();
    /**
     * <pre>
     * Превышен интервал отправки кода подтверждения
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
     * @return The intervalExceeded.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded getIntervalExceeded();
    /**
     * <pre>
     * Превышен интервал отправки кода подтверждения
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceededOrBuilder getIntervalExceededOrBuilder();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.ReasonCase getReasonCase();
  }
  /**
   * <pre>
   * Ошибки из ССО
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.SsoError}
   */
  public static final class SsoError extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.SsoError)
      SsoErrorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SsoError.newBuilder() to construct.
    private SsoError(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SsoError() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SsoError();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder.class);
    }

    public interface UserIsTemporaryBlockedOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Пользователь временно заблокирован
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked}
     */
    public static final class UserIsTemporaryBlocked extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked)
        UserIsTemporaryBlockedOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use UserIsTemporaryBlocked.newBuilder() to construct.
      private UserIsTemporaryBlocked(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private UserIsTemporaryBlocked() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new UserIsTemporaryBlocked();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlockedOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<UserIsTemporaryBlocked>
          PARSER = new com.google.protobuf.AbstractParser<UserIsTemporaryBlocked>() {
        @java.lang.Override
        public UserIsTemporaryBlocked parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<UserIsTemporaryBlocked> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<UserIsTemporaryBlocked> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface UserNotFoundOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.SsoError.UserNotFound)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Пользователь не найден
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.UserNotFound}
     */
    public static final class UserNotFound extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.SsoError.UserNotFound)
        UserNotFoundOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use UserNotFound.newBuilder() to construct.
      private UserNotFound(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private UserNotFound() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new UserNotFound();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.UserNotFound}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.SsoError.UserNotFound)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFoundOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.SsoError.UserNotFound)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.SsoError.UserNotFound)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<UserNotFound>
          PARSER = new com.google.protobuf.AbstractParser<UserNotFound>() {
        @java.lang.Override
        public UserNotFound parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<UserNotFound> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<UserNotFound> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface WrongCredentialsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.SsoError.WrongCredentials)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
       * @return Whether the captcha field is set.
       */
      boolean hasCaptcha();
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
       * @return The captcha.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getCaptcha();
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder getCaptchaOrBuilder();
    }
    /**
     * <pre>
     * Неверный пароль
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.WrongCredentials}
     */
    public static final class WrongCredentials extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.SsoError.WrongCredentials)
        WrongCredentialsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use WrongCredentials.newBuilder() to construct.
      private WrongCredentials(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private WrongCredentials() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new WrongCredentials();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.Builder.class);
      }

      public static final int CAPTCHA_FIELD_NUMBER = 1;
      private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha captcha_;
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
       * @return Whether the captcha field is set.
       */
      @java.lang.Override
      public boolean hasCaptcha() {
        return captcha_ != null;
      }
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
       * @return The captcha.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getCaptcha() {
        return captcha_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
      }
      /**
       * <pre>
       * Капча
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder getCaptchaOrBuilder() {
        return captcha_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (captcha_ != null) {
          output.writeMessage(1, getCaptcha());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (captcha_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getCaptcha());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) obj;

        if (hasCaptcha() != other.hasCaptcha()) return false;
        if (hasCaptcha()) {
          if (!getCaptcha()
              .equals(other.getCaptcha())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasCaptcha()) {
          hash = (37 * hash) + CAPTCHA_FIELD_NUMBER;
          hash = (53 * hash) + getCaptcha().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.WrongCredentials}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.SsoError.WrongCredentials)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentialsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          captcha_ = null;
          if (captchaBuilder_ != null) {
            captchaBuilder_.dispose();
            captchaBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.captcha_ = captchaBuilder_ == null
                ? captcha_
                : captchaBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance()) return this;
          if (other.hasCaptcha()) {
            mergeCaptcha(other.getCaptcha());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getCaptchaFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha captcha_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder> captchaBuilder_;
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         * @return Whether the captcha field is set.
         */
        public boolean hasCaptcha() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         * @return The captcha.
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha getCaptcha() {
          if (captchaBuilder_ == null) {
            return captcha_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
          } else {
            return captchaBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         */
        public Builder setCaptcha(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha value) {
          if (captchaBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            captcha_ = value;
          } else {
            captchaBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         */
        public Builder setCaptcha(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder builderForValue) {
          if (captchaBuilder_ == null) {
            captcha_ = builderForValue.build();
          } else {
            captchaBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         */
        public Builder mergeCaptcha(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha value) {
          if (captchaBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
              captcha_ != null &&
              captcha_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance()) {
              getCaptchaBuilder().mergeFrom(value);
            } else {
              captcha_ = value;
            }
          } else {
            captchaBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         */
        public Builder clearCaptcha() {
          bitField0_ = (bitField0_ & ~0x00000001);
          captcha_ = null;
          if (captchaBuilder_ != null) {
            captchaBuilder_.dispose();
            captchaBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder getCaptchaBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getCaptchaFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder getCaptchaOrBuilder() {
          if (captchaBuilder_ != null) {
            return captchaBuilder_.getMessageOrBuilder();
          } else {
            return captcha_ == null ?
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.getDefaultInstance() : captcha_;
          }
        }
        /**
         * <pre>
         * Капча
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.Captcha captcha = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder> 
            getCaptchaFieldBuilder() {
          if (captchaBuilder_ == null) {
            captchaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Captcha.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaOrBuilder>(
                    getCaptcha(),
                    getParentForChildren(),
                    isClean());
            captcha_ = null;
          }
          return captchaBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.SsoError.WrongCredentials)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.SsoError.WrongCredentials)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<WrongCredentials>
          PARSER = new com.google.protobuf.AbstractParser<WrongCredentials>() {
        @java.lang.Override
        public WrongCredentials parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<WrongCredentials> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<WrongCredentials> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface UserIsBlockedOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.SsoError.UserIsBlocked)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Пользователь заблокирован
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.UserIsBlocked}
     */
    public static final class UserIsBlocked extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.SsoError.UserIsBlocked)
        UserIsBlockedOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use UserIsBlocked.newBuilder() to construct.
      private UserIsBlocked(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private UserIsBlocked() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new UserIsBlocked();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.UserIsBlocked}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.SsoError.UserIsBlocked)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlockedOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.SsoError.UserIsBlocked)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.SsoError.UserIsBlocked)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<UserIsBlocked>
          PARSER = new com.google.protobuf.AbstractParser<UserIsBlocked>() {
        @java.lang.Override
        public UserIsBlocked parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<UserIsBlocked> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<UserIsBlocked> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface IntervalExceededOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.SsoError.IntervalExceeded)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Превышен интервал отправки кода подтверждения
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.IntervalExceeded}
     */
    public static final class IntervalExceeded extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.SsoError.IntervalExceeded)
        IntervalExceededOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use IntervalExceeded.newBuilder() to construct.
      private IntervalExceeded(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private IntervalExceeded() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new IntervalExceeded();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.SsoError.IntervalExceeded}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.SsoError.IntervalExceeded)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceededOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.SsoError.IntervalExceeded)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.SsoError.IntervalExceeded)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<IntervalExceeded>
          PARSER = new com.google.protobuf.AbstractParser<IntervalExceeded>() {
        @java.lang.Override
        public IntervalExceeded parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<IntervalExceeded> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<IntervalExceeded> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int reasonCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object reason_;
    public enum ReasonCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      USER_IS_TEMPORARY_BLOCKED(1),
      USER_NOT_FOUND(2),
      WRONG_CREDENTIALS(3),
      USER_IS_BLOCKED(4),
      INTERVAL_EXCEEDED(5),
      REASON_NOT_SET(0);
      private final int value;
      private ReasonCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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 USER_IS_TEMPORARY_BLOCKED;
          case 2: return USER_NOT_FOUND;
          case 3: return WRONG_CREDENTIALS;
          case 4: return USER_IS_BLOCKED;
          case 5: return INTERVAL_EXCEEDED;
          case 0: return REASON_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ReasonCase
    getReasonCase() {
      return ReasonCase.forNumber(
          reasonCase_);
    }

    public static final int USER_IS_TEMPORARY_BLOCKED_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Пользователь временно заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
     * @return Whether the userIsTemporaryBlocked field is set.
     */
    @java.lang.Override
    public boolean hasUserIsTemporaryBlocked() {
      return reasonCase_ == 1;
    }
    /**
     * <pre>
     * Пользователь временно заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
     * @return The userIsTemporaryBlocked.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked getUserIsTemporaryBlocked() {
      if (reasonCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance();
    }
    /**
     * <pre>
     * Пользователь временно заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlockedOrBuilder getUserIsTemporaryBlockedOrBuilder() {
      if (reasonCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance();
    }

    public static final int USER_NOT_FOUND_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Пользователь не найден
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
     * @return Whether the userNotFound field is set.
     */
    @java.lang.Override
    public boolean hasUserNotFound() {
      return reasonCase_ == 2;
    }
    /**
     * <pre>
     * Пользователь не найден
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
     * @return The userNotFound.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound getUserNotFound() {
      if (reasonCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance();
    }
    /**
     * <pre>
     * Пользователь не найден
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFoundOrBuilder getUserNotFoundOrBuilder() {
      if (reasonCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance();
    }

    public static final int WRONG_CREDENTIALS_FIELD_NUMBER = 3;
    /**
     * <pre>
     * Неверный пароль
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
     * @return Whether the wrongCredentials field is set.
     */
    @java.lang.Override
    public boolean hasWrongCredentials() {
      return reasonCase_ == 3;
    }
    /**
     * <pre>
     * Неверный пароль
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
     * @return The wrongCredentials.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials getWrongCredentials() {
      if (reasonCase_ == 3) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance();
    }
    /**
     * <pre>
     * Неверный пароль
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentialsOrBuilder getWrongCredentialsOrBuilder() {
      if (reasonCase_ == 3) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance();
    }

    public static final int USER_IS_BLOCKED_FIELD_NUMBER = 4;
    /**
     * <pre>
     * Пользователь заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
     * @return Whether the userIsBlocked field is set.
     */
    @java.lang.Override
    public boolean hasUserIsBlocked() {
      return reasonCase_ == 4;
    }
    /**
     * <pre>
     * Пользователь заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
     * @return The userIsBlocked.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked getUserIsBlocked() {
      if (reasonCase_ == 4) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance();
    }
    /**
     * <pre>
     * Пользователь заблокирован
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlockedOrBuilder getUserIsBlockedOrBuilder() {
      if (reasonCase_ == 4) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance();
    }

    public static final int INTERVAL_EXCEEDED_FIELD_NUMBER = 5;
    /**
     * <pre>
     * Превышен интервал отправки кода подтверждения
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
     * @return Whether the intervalExceeded field is set.
     */
    @java.lang.Override
    public boolean hasIntervalExceeded() {
      return reasonCase_ == 5;
    }
    /**
     * <pre>
     * Превышен интервал отправки кода подтверждения
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
     * @return The intervalExceeded.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded getIntervalExceeded() {
      if (reasonCase_ == 5) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance();
    }
    /**
     * <pre>
     * Превышен интервал отправки кода подтверждения
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceededOrBuilder getIntervalExceededOrBuilder() {
      if (reasonCase_ == 5) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (reasonCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_);
      }
      if (reasonCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_);
      }
      if (reasonCase_ == 3) {
        output.writeMessage(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_);
      }
      if (reasonCase_ == 4) {
        output.writeMessage(4, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_);
      }
      if (reasonCase_ == 5) {
        output.writeMessage(5, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (reasonCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_);
      }
      if (reasonCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_);
      }
      if (reasonCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_);
      }
      if (reasonCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_);
      }
      if (reasonCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) obj;

      if (!getReasonCase().equals(other.getReasonCase())) return false;
      switch (reasonCase_) {
        case 1:
          if (!getUserIsTemporaryBlocked()
              .equals(other.getUserIsTemporaryBlocked())) return false;
          break;
        case 2:
          if (!getUserNotFound()
              .equals(other.getUserNotFound())) return false;
          break;
        case 3:
          if (!getWrongCredentials()
              .equals(other.getWrongCredentials())) return false;
          break;
        case 4:
          if (!getUserIsBlocked()
              .equals(other.getUserIsBlocked())) return false;
          break;
        case 5:
          if (!getIntervalExceeded()
              .equals(other.getIntervalExceeded())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (reasonCase_) {
        case 1:
          hash = (37 * hash) + USER_IS_TEMPORARY_BLOCKED_FIELD_NUMBER;
          hash = (53 * hash) + getUserIsTemporaryBlocked().hashCode();
          break;
        case 2:
          hash = (37 * hash) + USER_NOT_FOUND_FIELD_NUMBER;
          hash = (53 * hash) + getUserNotFound().hashCode();
          break;
        case 3:
          hash = (37 * hash) + WRONG_CREDENTIALS_FIELD_NUMBER;
          hash = (53 * hash) + getWrongCredentials().hashCode();
          break;
        case 4:
          hash = (37 * hash) + USER_IS_BLOCKED_FIELD_NUMBER;
          hash = (53 * hash) + getUserIsBlocked().hashCode();
          break;
        case 5:
          hash = (37 * hash) + INTERVAL_EXCEEDED_FIELD_NUMBER;
          hash = (53 * hash) + getIntervalExceeded().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ошибки из ССО
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.SsoError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.SsoError)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (userIsTemporaryBlockedBuilder_ != null) {
          userIsTemporaryBlockedBuilder_.clear();
        }
        if (userNotFoundBuilder_ != null) {
          userNotFoundBuilder_.clear();
        }
        if (wrongCredentialsBuilder_ != null) {
          wrongCredentialsBuilder_.clear();
        }
        if (userIsBlockedBuilder_ != null) {
          userIsBlockedBuilder_.clear();
        }
        if (intervalExceededBuilder_ != null) {
          intervalExceededBuilder_.clear();
        }
        reasonCase_ = 0;
        reason_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_SsoError_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError result) {
        result.reasonCase_ = reasonCase_;
        result.reason_ = this.reason_;
        if (reasonCase_ == 1 &&
            userIsTemporaryBlockedBuilder_ != null) {
          result.reason_ = userIsTemporaryBlockedBuilder_.build();
        }
        if (reasonCase_ == 2 &&
            userNotFoundBuilder_ != null) {
          result.reason_ = userNotFoundBuilder_.build();
        }
        if (reasonCase_ == 3 &&
            wrongCredentialsBuilder_ != null) {
          result.reason_ = wrongCredentialsBuilder_.build();
        }
        if (reasonCase_ == 4 &&
            userIsBlockedBuilder_ != null) {
          result.reason_ = userIsBlockedBuilder_.build();
        }
        if (reasonCase_ == 5 &&
            intervalExceededBuilder_ != null) {
          result.reason_ = intervalExceededBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance()) return this;
        switch (other.getReasonCase()) {
          case USER_IS_TEMPORARY_BLOCKED: {
            mergeUserIsTemporaryBlocked(other.getUserIsTemporaryBlocked());
            break;
          }
          case USER_NOT_FOUND: {
            mergeUserNotFound(other.getUserNotFound());
            break;
          }
          case WRONG_CREDENTIALS: {
            mergeWrongCredentials(other.getWrongCredentials());
            break;
          }
          case USER_IS_BLOCKED: {
            mergeUserIsBlocked(other.getUserIsBlocked());
            break;
          }
          case INTERVAL_EXCEEDED: {
            mergeIntervalExceeded(other.getIntervalExceeded());
            break;
          }
          case REASON_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getUserIsTemporaryBlockedFieldBuilder().getBuilder(),
                    extensionRegistry);
                reasonCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getUserNotFoundFieldBuilder().getBuilder(),
                    extensionRegistry);
                reasonCase_ = 2;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getWrongCredentialsFieldBuilder().getBuilder(),
                    extensionRegistry);
                reasonCase_ = 3;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getUserIsBlockedFieldBuilder().getBuilder(),
                    extensionRegistry);
                reasonCase_ = 4;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getIntervalExceededFieldBuilder().getBuilder(),
                    extensionRegistry);
                reasonCase_ = 5;
                break;
              } // case 42
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public ReasonCase
          getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public Builder clearReason() {
        reasonCase_ = 0;
        reason_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlockedOrBuilder> userIsTemporaryBlockedBuilder_;
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       * @return Whether the userIsTemporaryBlocked field is set.
       */
      @java.lang.Override
      public boolean hasUserIsTemporaryBlocked() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       * @return The userIsTemporaryBlocked.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked getUserIsTemporaryBlocked() {
        if (userIsTemporaryBlockedBuilder_ == null) {
          if (reasonCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance();
        } else {
          if (reasonCase_ == 1) {
            return userIsTemporaryBlockedBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       */
      public Builder setUserIsTemporaryBlocked(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked value) {
        if (userIsTemporaryBlockedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reason_ = value;
          onChanged();
        } else {
          userIsTemporaryBlockedBuilder_.setMessage(value);
        }
        reasonCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       */
      public Builder setUserIsTemporaryBlocked(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.Builder builderForValue) {
        if (userIsTemporaryBlockedBuilder_ == null) {
          reason_ = builderForValue.build();
          onChanged();
        } else {
          userIsTemporaryBlockedBuilder_.setMessage(builderForValue.build());
        }
        reasonCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       */
      public Builder mergeUserIsTemporaryBlocked(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked value) {
        if (userIsTemporaryBlockedBuilder_ == null) {
          if (reasonCase_ == 1 &&
              reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance()) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_)
                .mergeFrom(value).buildPartial();
          } else {
            reason_ = value;
          }
          onChanged();
        } else {
          if (reasonCase_ == 1) {
            userIsTemporaryBlockedBuilder_.mergeFrom(value);
          } else {
            userIsTemporaryBlockedBuilder_.setMessage(value);
          }
        }
        reasonCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       */
      public Builder clearUserIsTemporaryBlocked() {
        if (userIsTemporaryBlockedBuilder_ == null) {
          if (reasonCase_ == 1) {
            reasonCase_ = 0;
            reason_ = null;
            onChanged();
          }
        } else {
          if (reasonCase_ == 1) {
            reasonCase_ = 0;
            reason_ = null;
          }
          userIsTemporaryBlockedBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.Builder getUserIsTemporaryBlockedBuilder() {
        return getUserIsTemporaryBlockedFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlockedOrBuilder getUserIsTemporaryBlockedOrBuilder() {
        if ((reasonCase_ == 1) && (userIsTemporaryBlockedBuilder_ != null)) {
          return userIsTemporaryBlockedBuilder_.getMessageOrBuilder();
        } else {
          if (reasonCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Пользователь временно заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsTemporaryBlocked user_is_temporary_blocked = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlockedOrBuilder> 
          getUserIsTemporaryBlockedFieldBuilder() {
        if (userIsTemporaryBlockedBuilder_ == null) {
          if (!(reasonCase_ == 1)) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.getDefaultInstance();
          }
          userIsTemporaryBlockedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlockedOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsTemporaryBlocked) reason_,
                  getParentForChildren(),
                  isClean());
          reason_ = null;
        }
        reasonCase_ = 1;
        onChanged();
        return userIsTemporaryBlockedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFoundOrBuilder> userNotFoundBuilder_;
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       * @return Whether the userNotFound field is set.
       */
      @java.lang.Override
      public boolean hasUserNotFound() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       * @return The userNotFound.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound getUserNotFound() {
        if (userNotFoundBuilder_ == null) {
          if (reasonCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance();
        } else {
          if (reasonCase_ == 2) {
            return userNotFoundBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       */
      public Builder setUserNotFound(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound value) {
        if (userNotFoundBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reason_ = value;
          onChanged();
        } else {
          userNotFoundBuilder_.setMessage(value);
        }
        reasonCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       */
      public Builder setUserNotFound(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.Builder builderForValue) {
        if (userNotFoundBuilder_ == null) {
          reason_ = builderForValue.build();
          onChanged();
        } else {
          userNotFoundBuilder_.setMessage(builderForValue.build());
        }
        reasonCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       */
      public Builder mergeUserNotFound(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound value) {
        if (userNotFoundBuilder_ == null) {
          if (reasonCase_ == 2 &&
              reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance()) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_)
                .mergeFrom(value).buildPartial();
          } else {
            reason_ = value;
          }
          onChanged();
        } else {
          if (reasonCase_ == 2) {
            userNotFoundBuilder_.mergeFrom(value);
          } else {
            userNotFoundBuilder_.setMessage(value);
          }
        }
        reasonCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       */
      public Builder clearUserNotFound() {
        if (userNotFoundBuilder_ == null) {
          if (reasonCase_ == 2) {
            reasonCase_ = 0;
            reason_ = null;
            onChanged();
          }
        } else {
          if (reasonCase_ == 2) {
            reasonCase_ = 0;
            reason_ = null;
          }
          userNotFoundBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.Builder getUserNotFoundBuilder() {
        return getUserNotFoundFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFoundOrBuilder getUserNotFoundOrBuilder() {
        if ((reasonCase_ == 2) && (userNotFoundBuilder_ != null)) {
          return userNotFoundBuilder_.getMessageOrBuilder();
        } else {
          if (reasonCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Пользователь не найден
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserNotFound user_not_found = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFoundOrBuilder> 
          getUserNotFoundFieldBuilder() {
        if (userNotFoundBuilder_ == null) {
          if (!(reasonCase_ == 2)) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.getDefaultInstance();
          }
          userNotFoundBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFoundOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserNotFound) reason_,
                  getParentForChildren(),
                  isClean());
          reason_ = null;
        }
        reasonCase_ = 2;
        onChanged();
        return userNotFoundBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentialsOrBuilder> wrongCredentialsBuilder_;
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       * @return Whether the wrongCredentials field is set.
       */
      @java.lang.Override
      public boolean hasWrongCredentials() {
        return reasonCase_ == 3;
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       * @return The wrongCredentials.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials getWrongCredentials() {
        if (wrongCredentialsBuilder_ == null) {
          if (reasonCase_ == 3) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance();
        } else {
          if (reasonCase_ == 3) {
            return wrongCredentialsBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       */
      public Builder setWrongCredentials(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials value) {
        if (wrongCredentialsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reason_ = value;
          onChanged();
        } else {
          wrongCredentialsBuilder_.setMessage(value);
        }
        reasonCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       */
      public Builder setWrongCredentials(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.Builder builderForValue) {
        if (wrongCredentialsBuilder_ == null) {
          reason_ = builderForValue.build();
          onChanged();
        } else {
          wrongCredentialsBuilder_.setMessage(builderForValue.build());
        }
        reasonCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       */
      public Builder mergeWrongCredentials(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials value) {
        if (wrongCredentialsBuilder_ == null) {
          if (reasonCase_ == 3 &&
              reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance()) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_)
                .mergeFrom(value).buildPartial();
          } else {
            reason_ = value;
          }
          onChanged();
        } else {
          if (reasonCase_ == 3) {
            wrongCredentialsBuilder_.mergeFrom(value);
          } else {
            wrongCredentialsBuilder_.setMessage(value);
          }
        }
        reasonCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       */
      public Builder clearWrongCredentials() {
        if (wrongCredentialsBuilder_ == null) {
          if (reasonCase_ == 3) {
            reasonCase_ = 0;
            reason_ = null;
            onChanged();
          }
        } else {
          if (reasonCase_ == 3) {
            reasonCase_ = 0;
            reason_ = null;
          }
          wrongCredentialsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.Builder getWrongCredentialsBuilder() {
        return getWrongCredentialsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentialsOrBuilder getWrongCredentialsOrBuilder() {
        if ((reasonCase_ == 3) && (wrongCredentialsBuilder_ != null)) {
          return wrongCredentialsBuilder_.getMessageOrBuilder();
        } else {
          if (reasonCase_ == 3) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Неверный пароль
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.WrongCredentials wrong_credentials = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentialsOrBuilder> 
          getWrongCredentialsFieldBuilder() {
        if (wrongCredentialsBuilder_ == null) {
          if (!(reasonCase_ == 3)) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.getDefaultInstance();
          }
          wrongCredentialsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentialsOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.WrongCredentials) reason_,
                  getParentForChildren(),
                  isClean());
          reason_ = null;
        }
        reasonCase_ = 3;
        onChanged();
        return wrongCredentialsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlockedOrBuilder> userIsBlockedBuilder_;
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       * @return Whether the userIsBlocked field is set.
       */
      @java.lang.Override
      public boolean hasUserIsBlocked() {
        return reasonCase_ == 4;
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       * @return The userIsBlocked.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked getUserIsBlocked() {
        if (userIsBlockedBuilder_ == null) {
          if (reasonCase_ == 4) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance();
        } else {
          if (reasonCase_ == 4) {
            return userIsBlockedBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       */
      public Builder setUserIsBlocked(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked value) {
        if (userIsBlockedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reason_ = value;
          onChanged();
        } else {
          userIsBlockedBuilder_.setMessage(value);
        }
        reasonCase_ = 4;
        return this;
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       */
      public Builder setUserIsBlocked(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.Builder builderForValue) {
        if (userIsBlockedBuilder_ == null) {
          reason_ = builderForValue.build();
          onChanged();
        } else {
          userIsBlockedBuilder_.setMessage(builderForValue.build());
        }
        reasonCase_ = 4;
        return this;
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       */
      public Builder mergeUserIsBlocked(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked value) {
        if (userIsBlockedBuilder_ == null) {
          if (reasonCase_ == 4 &&
              reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance()) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_)
                .mergeFrom(value).buildPartial();
          } else {
            reason_ = value;
          }
          onChanged();
        } else {
          if (reasonCase_ == 4) {
            userIsBlockedBuilder_.mergeFrom(value);
          } else {
            userIsBlockedBuilder_.setMessage(value);
          }
        }
        reasonCase_ = 4;
        return this;
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       */
      public Builder clearUserIsBlocked() {
        if (userIsBlockedBuilder_ == null) {
          if (reasonCase_ == 4) {
            reasonCase_ = 0;
            reason_ = null;
            onChanged();
          }
        } else {
          if (reasonCase_ == 4) {
            reasonCase_ = 0;
            reason_ = null;
          }
          userIsBlockedBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.Builder getUserIsBlockedBuilder() {
        return getUserIsBlockedFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlockedOrBuilder getUserIsBlockedOrBuilder() {
        if ((reasonCase_ == 4) && (userIsBlockedBuilder_ != null)) {
          return userIsBlockedBuilder_.getMessageOrBuilder();
        } else {
          if (reasonCase_ == 4) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Пользователь заблокирован
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.UserIsBlocked user_is_blocked = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlockedOrBuilder> 
          getUserIsBlockedFieldBuilder() {
        if (userIsBlockedBuilder_ == null) {
          if (!(reasonCase_ == 4)) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.getDefaultInstance();
          }
          userIsBlockedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlockedOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.UserIsBlocked) reason_,
                  getParentForChildren(),
                  isClean());
          reason_ = null;
        }
        reasonCase_ = 4;
        onChanged();
        return userIsBlockedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceededOrBuilder> intervalExceededBuilder_;
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       * @return Whether the intervalExceeded field is set.
       */
      @java.lang.Override
      public boolean hasIntervalExceeded() {
        return reasonCase_ == 5;
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       * @return The intervalExceeded.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded getIntervalExceeded() {
        if (intervalExceededBuilder_ == null) {
          if (reasonCase_ == 5) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance();
        } else {
          if (reasonCase_ == 5) {
            return intervalExceededBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       */
      public Builder setIntervalExceeded(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded value) {
        if (intervalExceededBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reason_ = value;
          onChanged();
        } else {
          intervalExceededBuilder_.setMessage(value);
        }
        reasonCase_ = 5;
        return this;
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       */
      public Builder setIntervalExceeded(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.Builder builderForValue) {
        if (intervalExceededBuilder_ == null) {
          reason_ = builderForValue.build();
          onChanged();
        } else {
          intervalExceededBuilder_.setMessage(builderForValue.build());
        }
        reasonCase_ = 5;
        return this;
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       */
      public Builder mergeIntervalExceeded(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded value) {
        if (intervalExceededBuilder_ == null) {
          if (reasonCase_ == 5 &&
              reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance()) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_)
                .mergeFrom(value).buildPartial();
          } else {
            reason_ = value;
          }
          onChanged();
        } else {
          if (reasonCase_ == 5) {
            intervalExceededBuilder_.mergeFrom(value);
          } else {
            intervalExceededBuilder_.setMessage(value);
          }
        }
        reasonCase_ = 5;
        return this;
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       */
      public Builder clearIntervalExceeded() {
        if (intervalExceededBuilder_ == null) {
          if (reasonCase_ == 5) {
            reasonCase_ = 0;
            reason_ = null;
            onChanged();
          }
        } else {
          if (reasonCase_ == 5) {
            reasonCase_ = 0;
            reason_ = null;
          }
          intervalExceededBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.Builder getIntervalExceededBuilder() {
        return getIntervalExceededFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceededOrBuilder getIntervalExceededOrBuilder() {
        if ((reasonCase_ == 5) && (intervalExceededBuilder_ != null)) {
          return intervalExceededBuilder_.getMessageOrBuilder();
        } else {
          if (reasonCase_ == 5) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Превышен интервал отправки кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError.IntervalExceeded interval_exceeded = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceededOrBuilder> 
          getIntervalExceededFieldBuilder() {
        if (intervalExceededBuilder_ == null) {
          if (!(reasonCase_ == 5)) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.getDefaultInstance();
          }
          intervalExceededBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceededOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.IntervalExceeded) reason_,
                  getParentForChildren(),
                  isClean());
          reason_ = null;
        }
        reasonCase_ = 5;
        onChanged();
        return intervalExceededBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.SsoError)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.SsoError)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SsoError>
        PARSER = new com.google.protobuf.AbstractParser<SsoError>() {
      @java.lang.Override
      public SsoError parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<SsoError> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SsoError> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface KeyErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.KeyError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Ошибка создания пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
     * @return Whether the userCreation field is set.
     */
    boolean hasUserCreation();
    /**
     * <pre>
     * Ошибка создания пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
     * @return The userCreation.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation getUserCreation();
    /**
     * <pre>
     * Ошибка создания пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreationOrBuilder getUserCreationOrBuilder();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.ReasonCase getReasonCase();
  }
  /**
   * <pre>
   * Ошибки сервисов ключа
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.KeyError}
   */
  public static final class KeyError extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.KeyError)
      KeyErrorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use KeyError.newBuilder() to construct.
    private KeyError(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private KeyError() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new KeyError();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder.class);
    }

    public interface UserCreationOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.KeyError.UserCreation)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Ошибка создания пользователя
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.KeyError.UserCreation}
     */
    public static final class UserCreation extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.KeyError.UserCreation)
        UserCreationOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use UserCreation.newBuilder() to construct.
      private UserCreation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private UserCreation() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new UserCreation();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.KeyError.UserCreation}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.KeyError.UserCreation)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreationOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.KeyError.UserCreation)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.KeyError.UserCreation)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<UserCreation>
          PARSER = new com.google.protobuf.AbstractParser<UserCreation>() {
        @java.lang.Override
        public UserCreation parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<UserCreation> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<UserCreation> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int reasonCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object reason_;
    public enum ReasonCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      USER_CREATION(1),
      REASON_NOT_SET(0);
      private final int value;
      private ReasonCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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 USER_CREATION;
          case 0: return REASON_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ReasonCase
    getReasonCase() {
      return ReasonCase.forNumber(
          reasonCase_);
    }

    public static final int USER_CREATION_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Ошибка создания пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
     * @return Whether the userCreation field is set.
     */
    @java.lang.Override
    public boolean hasUserCreation() {
      return reasonCase_ == 1;
    }
    /**
     * <pre>
     * Ошибка создания пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
     * @return The userCreation.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation getUserCreation() {
      if (reasonCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка создания пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreationOrBuilder getUserCreationOrBuilder() {
      if (reasonCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (reasonCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (reasonCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) obj;

      if (!getReasonCase().equals(other.getReasonCase())) return false;
      switch (reasonCase_) {
        case 1:
          if (!getUserCreation()
              .equals(other.getUserCreation())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (reasonCase_) {
        case 1:
          hash = (37 * hash) + USER_CREATION_FIELD_NUMBER;
          hash = (53 * hash) + getUserCreation().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ошибки сервисов ключа
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.KeyError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.KeyError)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (userCreationBuilder_ != null) {
          userCreationBuilder_.clear();
        }
        reasonCase_ = 0;
        reason_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_KeyError_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError result) {
        result.reasonCase_ = reasonCase_;
        result.reason_ = this.reason_;
        if (reasonCase_ == 1 &&
            userCreationBuilder_ != null) {
          result.reason_ = userCreationBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance()) return this;
        switch (other.getReasonCase()) {
          case USER_CREATION: {
            mergeUserCreation(other.getUserCreation());
            break;
          }
          case REASON_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getUserCreationFieldBuilder().getBuilder(),
                    extensionRegistry);
                reasonCase_ = 1;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public ReasonCase
          getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public Builder clearReason() {
        reasonCase_ = 0;
        reason_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreationOrBuilder> userCreationBuilder_;
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       * @return Whether the userCreation field is set.
       */
      @java.lang.Override
      public boolean hasUserCreation() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       * @return The userCreation.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation getUserCreation() {
        if (userCreationBuilder_ == null) {
          if (reasonCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance();
        } else {
          if (reasonCase_ == 1) {
            return userCreationBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       */
      public Builder setUserCreation(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation value) {
        if (userCreationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reason_ = value;
          onChanged();
        } else {
          userCreationBuilder_.setMessage(value);
        }
        reasonCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       */
      public Builder setUserCreation(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.Builder builderForValue) {
        if (userCreationBuilder_ == null) {
          reason_ = builderForValue.build();
          onChanged();
        } else {
          userCreationBuilder_.setMessage(builderForValue.build());
        }
        reasonCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       */
      public Builder mergeUserCreation(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation value) {
        if (userCreationBuilder_ == null) {
          if (reasonCase_ == 1 &&
              reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance()) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_)
                .mergeFrom(value).buildPartial();
          } else {
            reason_ = value;
          }
          onChanged();
        } else {
          if (reasonCase_ == 1) {
            userCreationBuilder_.mergeFrom(value);
          } else {
            userCreationBuilder_.setMessage(value);
          }
        }
        reasonCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       */
      public Builder clearUserCreation() {
        if (userCreationBuilder_ == null) {
          if (reasonCase_ == 1) {
            reasonCase_ = 0;
            reason_ = null;
            onChanged();
          }
        } else {
          if (reasonCase_ == 1) {
            reasonCase_ = 0;
            reason_ = null;
          }
          userCreationBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.Builder getUserCreationBuilder() {
        return getUserCreationFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreationOrBuilder getUserCreationOrBuilder() {
        if ((reasonCase_ == 1) && (userCreationBuilder_ != null)) {
          return userCreationBuilder_.getMessageOrBuilder();
        } else {
          if (reasonCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка создания пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError.UserCreation user_creation = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreationOrBuilder> 
          getUserCreationFieldBuilder() {
        if (userCreationBuilder_ == null) {
          if (!(reasonCase_ == 1)) {
            reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.getDefaultInstance();
          }
          userCreationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreationOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.UserCreation) reason_,
                  getParentForChildren(),
                  isClean());
          reason_ = null;
        }
        reasonCase_ = 1;
        onChanged();
        return userCreationBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.KeyError)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.KeyError)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<KeyError>
        PARSER = new com.google.protobuf.AbstractParser<KeyError>() {
      @java.lang.Override
      public KeyError parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<KeyError> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<KeyError> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationSendCodeRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationSendCodeRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
     * @return Whether the captchaAnswer field is set.
     */
    boolean hasCaptchaAnswer();
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
     * @return The captchaAnswer.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getCaptchaAnswer();
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder getCaptchaAnswerOrBuilder();

    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 2;</code>
     * @return Whether the phoneNumber field is set.
     */
    boolean hasPhoneNumber();
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 2;</code>
     * @return The phoneNumber.
     */
    java.lang.String getPhoneNumber();
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 2;</code>
     * @return The bytes for phoneNumber.
     */
    com.google.protobuf.ByteString
        getPhoneNumberBytes();

    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 3;</code>
     * @return Whether the email field is set.
     */
    boolean hasEmail();
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 3;</code>
     * @return The email.
     */
    java.lang.String getEmail();
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 3;</code>
     * @return The bytes for email.
     */
    com.google.protobuf.ByteString
        getEmailBytes();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.OtpTextCase getOtpTextCase();
  }
  /**
   * <pre>
   * Запрос на отправку ОТП-кода для B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationSendCodeRequest}
   */
  public static final class PostAuthorizationSendCodeRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationSendCodeRequest)
      PostAuthorizationSendCodeRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationSendCodeRequest.newBuilder() to construct.
    private PostAuthorizationSendCodeRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationSendCodeRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationSendCodeRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.Builder.class);
    }

    private int otpTextCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object otpText_;
    public enum OtpTextCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      PHONE_NUMBER(2),
      EMAIL(3),
      OTPTEXT_NOT_SET(0);
      private final int value;
      private OtpTextCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OtpTextCase valueOf(int value) {
        return forNumber(value);
      }

      public static OtpTextCase forNumber(int value) {
        switch (value) {
          case 2: return PHONE_NUMBER;
          case 3: return EMAIL;
          case 0: return OTPTEXT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public OtpTextCase
    getOtpTextCase() {
      return OtpTextCase.forNumber(
          otpTextCase_);
    }

    public static final int CAPTCHA_ANSWER_FIELD_NUMBER = 1;
    private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer captchaAnswer_;
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
     * @return Whether the captchaAnswer field is set.
     */
    @java.lang.Override
    public boolean hasCaptchaAnswer() {
      return captchaAnswer_ != null;
    }
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
     * @return The captchaAnswer.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getCaptchaAnswer() {
      return captchaAnswer_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
    }
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder getCaptchaAnswerOrBuilder() {
      return captchaAnswer_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
    }

    public static final int PHONE_NUMBER_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 2;</code>
     * @return Whether the phoneNumber field is set.
     */
    public boolean hasPhoneNumber() {
      return otpTextCase_ == 2;
    }
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 2;</code>
     * @return The phoneNumber.
     */
    public java.lang.String getPhoneNumber() {
      java.lang.Object ref = "";
      if (otpTextCase_ == 2) {
        ref = otpText_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (otpTextCase_ == 2) {
          otpText_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 2;</code>
     * @return The bytes for phoneNumber.
     */
    public com.google.protobuf.ByteString
        getPhoneNumberBytes() {
      java.lang.Object ref = "";
      if (otpTextCase_ == 2) {
        ref = otpText_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (otpTextCase_ == 2) {
          otpText_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EMAIL_FIELD_NUMBER = 3;
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 3;</code>
     * @return Whether the email field is set.
     */
    public boolean hasEmail() {
      return otpTextCase_ == 3;
    }
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 3;</code>
     * @return The email.
     */
    public java.lang.String getEmail() {
      java.lang.Object ref = "";
      if (otpTextCase_ == 3) {
        ref = otpText_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (otpTextCase_ == 3) {
          otpText_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 3;</code>
     * @return The bytes for email.
     */
    public com.google.protobuf.ByteString
        getEmailBytes() {
      java.lang.Object ref = "";
      if (otpTextCase_ == 3) {
        ref = otpText_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (otpTextCase_ == 3) {
          otpText_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (captchaAnswer_ != null) {
        output.writeMessage(1, getCaptchaAnswer());
      }
      if (otpTextCase_ == 2) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, otpText_);
      }
      if (otpTextCase_ == 3) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, otpText_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (captchaAnswer_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getCaptchaAnswer());
      }
      if (otpTextCase_ == 2) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, otpText_);
      }
      if (otpTextCase_ == 3) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, otpText_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest) obj;

      if (hasCaptchaAnswer() != other.hasCaptchaAnswer()) return false;
      if (hasCaptchaAnswer()) {
        if (!getCaptchaAnswer()
            .equals(other.getCaptchaAnswer())) return false;
      }
      if (!getOtpTextCase().equals(other.getOtpTextCase())) return false;
      switch (otpTextCase_) {
        case 2:
          if (!getPhoneNumber()
              .equals(other.getPhoneNumber())) return false;
          break;
        case 3:
          if (!getEmail()
              .equals(other.getEmail())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCaptchaAnswer()) {
        hash = (37 * hash) + CAPTCHA_ANSWER_FIELD_NUMBER;
        hash = (53 * hash) + getCaptchaAnswer().hashCode();
      }
      switch (otpTextCase_) {
        case 2:
          hash = (37 * hash) + PHONE_NUMBER_FIELD_NUMBER;
          hash = (53 * hash) + getPhoneNumber().hashCode();
          break;
        case 3:
          hash = (37 * hash) + EMAIL_FIELD_NUMBER;
          hash = (53 * hash) + getEmail().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Запрос на отправку ОТП-кода для B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationSendCodeRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationSendCodeRequest)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        captchaAnswer_ = null;
        if (captchaAnswerBuilder_ != null) {
          captchaAnswerBuilder_.dispose();
          captchaAnswerBuilder_ = null;
        }
        otpTextCase_ = 0;
        otpText_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.captchaAnswer_ = captchaAnswerBuilder_ == null
              ? captchaAnswer_
              : captchaAnswerBuilder_.build();
        }
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest result) {
        result.otpTextCase_ = otpTextCase_;
        result.otpText_ = this.otpText_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest.getDefaultInstance()) return this;
        if (other.hasCaptchaAnswer()) {
          mergeCaptchaAnswer(other.getCaptchaAnswer());
        }
        switch (other.getOtpTextCase()) {
          case PHONE_NUMBER: {
            otpTextCase_ = 2;
            otpText_ = other.otpText_;
            onChanged();
            break;
          }
          case EMAIL: {
            otpTextCase_ = 3;
            otpText_ = other.otpText_;
            onChanged();
            break;
          }
          case OTPTEXT_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getCaptchaAnswerFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                otpTextCase_ = 2;
                otpText_ = s;
                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                otpTextCase_ = 3;
                otpText_ = s;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int otpTextCase_ = 0;
      private java.lang.Object otpText_;
      public OtpTextCase
          getOtpTextCase() {
        return OtpTextCase.forNumber(
            otpTextCase_);
      }

      public Builder clearOtpText() {
        otpTextCase_ = 0;
        otpText_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer captchaAnswer_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder> captchaAnswerBuilder_;
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       * @return Whether the captchaAnswer field is set.
       */
      public boolean hasCaptchaAnswer() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       * @return The captchaAnswer.
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getCaptchaAnswer() {
        if (captchaAnswerBuilder_ == null) {
          return captchaAnswer_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
        } else {
          return captchaAnswerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       */
      public Builder setCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer value) {
        if (captchaAnswerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          captchaAnswer_ = value;
        } else {
          captchaAnswerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       */
      public Builder setCaptchaAnswer(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder builderForValue) {
        if (captchaAnswerBuilder_ == null) {
          captchaAnswer_ = builderForValue.build();
        } else {
          captchaAnswerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       */
      public Builder mergeCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer value) {
        if (captchaAnswerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            captchaAnswer_ != null &&
            captchaAnswer_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance()) {
            getCaptchaAnswerBuilder().mergeFrom(value);
          } else {
            captchaAnswer_ = value;
          }
        } else {
          captchaAnswerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       */
      public Builder clearCaptchaAnswer() {
        bitField0_ = (bitField0_ & ~0x00000001);
        captchaAnswer_ = null;
        if (captchaAnswerBuilder_ != null) {
          captchaAnswerBuilder_.dispose();
          captchaAnswerBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder getCaptchaAnswerBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getCaptchaAnswerFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder getCaptchaAnswerOrBuilder() {
        if (captchaAnswerBuilder_ != null) {
          return captchaAnswerBuilder_.getMessageOrBuilder();
        } else {
          return captchaAnswer_ == null ?
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
        }
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder> 
          getCaptchaAnswerFieldBuilder() {
        if (captchaAnswerBuilder_ == null) {
          captchaAnswerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder>(
                  getCaptchaAnswer(),
                  getParentForChildren(),
                  isClean());
          captchaAnswer_ = null;
        }
        return captchaAnswerBuilder_;
      }

      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 2;</code>
       * @return Whether the phoneNumber field is set.
       */
      @java.lang.Override
      public boolean hasPhoneNumber() {
        return otpTextCase_ == 2;
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 2;</code>
       * @return The phoneNumber.
       */
      @java.lang.Override
      public java.lang.String getPhoneNumber() {
        java.lang.Object ref = "";
        if (otpTextCase_ == 2) {
          ref = otpText_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (otpTextCase_ == 2) {
            otpText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 2;</code>
       * @return The bytes for phoneNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPhoneNumberBytes() {
        java.lang.Object ref = "";
        if (otpTextCase_ == 2) {
          ref = otpText_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (otpTextCase_ == 2) {
            otpText_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 2;</code>
       * @param value The phoneNumber to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        otpTextCase_ = 2;
        otpText_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPhoneNumber() {
        if (otpTextCase_ == 2) {
          otpTextCase_ = 0;
          otpText_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 2;</code>
       * @param value The bytes for phoneNumber to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        otpTextCase_ = 2;
        otpText_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 3;</code>
       * @return Whether the email field is set.
       */
      @java.lang.Override
      public boolean hasEmail() {
        return otpTextCase_ == 3;
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 3;</code>
       * @return The email.
       */
      @java.lang.Override
      public java.lang.String getEmail() {
        java.lang.Object ref = "";
        if (otpTextCase_ == 3) {
          ref = otpText_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (otpTextCase_ == 3) {
            otpText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 3;</code>
       * @return The bytes for email.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEmailBytes() {
        java.lang.Object ref = "";
        if (otpTextCase_ == 3) {
          ref = otpText_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (otpTextCase_ == 3) {
            otpText_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 3;</code>
       * @param value The email to set.
       * @return This builder for chaining.
       */
      public Builder setEmail(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        otpTextCase_ = 3;
        otpText_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmail() {
        if (otpTextCase_ == 3) {
          otpTextCase_ = 0;
          otpText_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 3;</code>
       * @param value The bytes for email to set.
       * @return This builder for chaining.
       */
      public Builder setEmailBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        otpTextCase_ = 3;
        otpText_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationSendCodeRequest)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationSendCodeRequest)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationSendCodeRequest>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationSendCodeRequest>() {
      @java.lang.Override
      public PostAuthorizationSendCodeRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationSendCodeRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationSendCodeRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationSendCodeResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Информация об ОТП-коде
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Информация об ОТП-коде
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
     * @return The data.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode getData();
    /**
     * <pre>
     * Информация об ОТП-коде
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCodeOrBuilder getDataOrBuilder();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос на отправку ОТП-кода для B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse}
   */
  public static final class PostAuthorizationSendCodeResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse)
      PostAuthorizationSendCodeResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationSendCodeResponse.newBuilder() to construct.
    private PostAuthorizationSendCodeResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationSendCodeResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationSendCodeResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Builder.class);
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Ошибка ответа с капчей
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return Whether the captchaAnswer field is set.
       */
      boolean hasCaptchaAnswer();
      /**
       * <pre>
       * Ошибка ответа с капчей
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return The captchaAnswer.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getCaptchaAnswer();
      /**
       * <pre>
       * Ошибка ответа с капчей
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder getCaptchaAnswerOrBuilder();

      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return Whether the sso field is set.
       */
      boolean hasSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return The sso.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder();

      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса на отправку ОТП-кода
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error}
     */
    public static final class Error extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.Builder.class);
      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        CAPTCHA_ANSWER(1),
        SSO(2),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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 CAPTCHA_ANSWER;
            case 2: return SSO;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int CAPTCHA_ANSWER_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка ответа с капчей
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return Whether the captchaAnswer field is set.
       */
      @java.lang.Override
      public boolean hasCaptchaAnswer() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка ответа с капчей
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return The captchaAnswer.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getCaptchaAnswer() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка ответа с капчей
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder getCaptchaAnswerOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
      }

      public static final int SSO_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return Whether the sso field is set.
       */
      @java.lang.Override
      public boolean hasSso() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return The sso.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_);
        }
        if (reasonCase_ == 2) {
          output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_);
        }
        if (reasonCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getCaptchaAnswer()
                .equals(other.getCaptchaAnswer())) return false;
            break;
          case 2:
            if (!getSso()
                .equals(other.getSso())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + CAPTCHA_ANSWER_FIELD_NUMBER;
            hash = (53 * hash) + getCaptchaAnswer().hashCode();
            break;
          case 2:
            hash = (37 * hash) + SSO_FIELD_NUMBER;
            hash = (53 * hash) + getSso().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка запроса на отправку ОТП-кода
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (captchaAnswerBuilder_ != null) {
            captchaAnswerBuilder_.clear();
          }
          if (ssoBuilder_ != null) {
            ssoBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              captchaAnswerBuilder_ != null) {
            result.reason_ = captchaAnswerBuilder_.build();
          }
          if (reasonCase_ == 2 &&
              ssoBuilder_ != null) {
            result.reason_ = ssoBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case CAPTCHA_ANSWER: {
              mergeCaptchaAnswer(other.getCaptchaAnswer());
              break;
            }
            case SSO: {
              mergeSso(other.getSso());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getCaptchaAnswerFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getSsoFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 2;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder> captchaAnswerBuilder_;
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         * @return Whether the captchaAnswer field is set.
         */
        @java.lang.Override
        public boolean hasCaptchaAnswer() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         * @return The captchaAnswer.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getCaptchaAnswer() {
          if (captchaAnswerBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return captchaAnswerBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder setCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error value) {
          if (captchaAnswerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            captchaAnswerBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder setCaptchaAnswer(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder builderForValue) {
          if (captchaAnswerBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            captchaAnswerBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder mergeCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error value) {
          if (captchaAnswerBuilder_ == null) {
            if (reasonCase_ == 1 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              captchaAnswerBuilder_.mergeFrom(value);
            } else {
              captchaAnswerBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder clearCaptchaAnswer() {
          if (captchaAnswerBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            captchaAnswerBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder getCaptchaAnswerBuilder() {
          return getCaptchaAnswerFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder getCaptchaAnswerOrBuilder() {
          if ((reasonCase_ == 1) && (captchaAnswerBuilder_ != null)) {
            return captchaAnswerBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка ответа с капчей
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder> 
            getCaptchaAnswerFieldBuilder() {
          if (captchaAnswerBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
            }
            captchaAnswerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return captchaAnswerBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> ssoBuilder_;
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         * @return Whether the sso field is set.
         */
        @java.lang.Override
        public boolean hasSso() {
          return reasonCase_ == 2;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         * @return The sso.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          } else {
            if (reasonCase_ == 2) {
              return ssoBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder setSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            ssoBuilder_.setMessage(value);
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder setSso(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder builderForValue) {
          if (ssoBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            ssoBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder mergeSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 2) {
              ssoBuilder_.mergeFrom(value);
            } else {
              ssoBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder clearSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
            }
            ssoBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder getSsoBuilder() {
          return getSsoFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
          if ((reasonCase_ == 2) && (ssoBuilder_ != null)) {
            return ssoBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> 
            getSsoFieldBuilder() {
          if (ssoBuilder_ == null) {
            if (!(reasonCase_ == 2)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
            }
            ssoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 2;
          onChanged();
          return ssoBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ERROR(1),
      DATA(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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 2: return DATA;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int ERROR_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
     * @return The error.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error getError() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.ErrorOrBuilder getErrorOrBuilder() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance();
    }

    public static final int DATA_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Информация об ОТП-коде
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Информация об ОТП-коде
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
     * @return The data.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode getData() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance();
    }
    /**
     * <pre>
     * Информация об ОТП-коде
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCodeOrBuilder getDataOrBuilder() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (typeCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (typeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse) obj;

      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 1:
          if (!getError()
              .equals(other.getError())) return false;
          break;
        case 2:
          if (!getData()
              .equals(other.getData())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (typeCase_) {
        case 1:
          hash = (37 * hash) + ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getError().hashCode();
          break;
        case 2:
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на запрос на отправку ОТП-кода для B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (errorBuilder_ != null) {
          errorBuilder_.clear();
        }
        if (dataBuilder_ != null) {
          dataBuilder_.clear();
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
        if (typeCase_ == 1 &&
            errorBuilder_ != null) {
          result.type_ = errorBuilder_.build();
        }
        if (typeCase_ == 2 &&
            dataBuilder_ != null) {
          result.type_ = dataBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.getDefaultInstance()) return this;
        switch (other.getTypeCase()) {
          case ERROR: {
            mergeError(other.getError());
            break;
          }
          case DATA: {
            mergeData(other.getData());
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.ErrorOrBuilder> errorBuilder_;
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       * @return Whether the error field is set.
       */
      @java.lang.Override
      public boolean hasError() {
        return typeCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       * @return The error.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error getError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance();
        } else {
          if (typeCase_ == 1) {
            return errorBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.Builder builderForValue) {
        if (errorBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error value) {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 1) {
            errorBuilder_.mergeFrom(value);
          } else {
            errorBuilder_.setMessage(value);
          }
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
          errorBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.Builder getErrorBuilder() {
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.ErrorOrBuilder getErrorOrBuilder() {
        if ((typeCase_ == 1) && (errorBuilder_ != null)) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse.Error error = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.ErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          if (!(typeCase_ == 1)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.getDefaultInstance();
          }
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.ErrorOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse.Error) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 1;
        onChanged();
        return errorBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCodeOrBuilder> dataBuilder_;
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode getData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance();
        } else {
          if (typeCase_ == 2) {
            return dataBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       */
      public Builder setData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       */
      public Builder setData(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Builder builderForValue) {
        if (dataBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       */
      public Builder mergeData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode value) {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 2) {
            dataBuilder_.mergeFrom(value);
          } else {
            dataBuilder_.setMessage(value);
          }
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Builder getDataBuilder() {
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCodeOrBuilder getDataOrBuilder() {
        if ((typeCase_ == 2) && (dataBuilder_ != null)) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Информация об ОТП-коде
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode data = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCodeOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          if (!(typeCase_ == 2)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.getDefaultInstance();
          }
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCodeOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 2;
        onChanged();
        return dataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationSendCodeResponse)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationSendCodeResponse>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationSendCodeResponse>() {
      @java.lang.Override
      public PostAuthorizationSendCodeResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationSendCodeResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationSendCodeResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationSendCodeResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationLoginRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationLoginRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    java.lang.String getCodeId();
    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    com.google.protobuf.ByteString
        getCodeIdBytes();

    /**
     * <pre>
     * Значение ОТП-кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    java.lang.String getCode();
    /**
     * <pre>
     * Значение ОТП-кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    com.google.protobuf.ByteString
        getCodeBytes();
  }
  /**
   * <pre>
   * Запрос на авторизацию по ОТП-коду для B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginRequest}
   */
  public static final class PostAuthorizationLoginRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginRequest)
      PostAuthorizationLoginRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationLoginRequest.newBuilder() to construct.
    private PostAuthorizationLoginRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationLoginRequest() {
      codeId_ = "";
      code_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationLoginRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest.Builder.class);
    }

    public static final int CODE_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object codeId_ = "";
    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    @java.lang.Override
    public java.lang.String getCodeId() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        codeId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор ОТП-кода
     * </pre>
     *
     * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCodeIdBytes() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        codeId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CODE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object code_ = "";
    /**
     * <pre>
     * Значение ОТП-кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    @java.lang.Override
    public java.lang.String getCode() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        code_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Значение ОТП-кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCodeBytes() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        code_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, codeId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, code_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, codeId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, code_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest) obj;

      if (!getCodeId()
          .equals(other.getCodeId())) return false;
      if (!getCode()
          .equals(other.getCode())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CODE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCodeId().hashCode();
      hash = (37 * hash) + CODE_FIELD_NUMBER;
      hash = (53 * hash) + getCode().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Запрос на авторизацию по ОТП-коду для B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginRequest)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        codeId_ = "";
        code_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.codeId_ = codeId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.code_ = code_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest.getDefaultInstance()) return this;
        if (!other.getCodeId().isEmpty()) {
          codeId_ = other.codeId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getCode().isEmpty()) {
          code_ = other.code_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                codeId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                code_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object codeId_ = "";
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The codeId.
       */
      public java.lang.String getCodeId() {
        java.lang.Object ref = codeId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          codeId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for codeId.
       */
      public com.google.protobuf.ByteString
          getCodeIdBytes() {
        java.lang.Object ref = codeId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          codeId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        codeId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCodeId() {
        codeId_ = getDefaultInstance().getCodeId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ОТП-кода
       * </pre>
       *
       * <code>string code_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        codeId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object code_ = "";
      /**
       * <pre>
       * Значение ОТП-кода
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The code.
       */
      public java.lang.String getCode() {
        java.lang.Object ref = code_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          code_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Значение ОТП-кода
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for code.
       */
      public com.google.protobuf.ByteString
          getCodeBytes() {
        java.lang.Object ref = code_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          code_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Значение ОТП-кода
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The code to set.
       * @return This builder for chaining.
       */
      public Builder setCode(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        code_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Значение ОТП-кода
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCode() {
        code_ = getDefaultInstance().getCode();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Значение ОТП-кода
       * </pre>
       *
       * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for code to set.
       * @return This builder for chaining.
       */
      public Builder setCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        code_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginRequest)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginRequest)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationLoginRequest>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationLoginRequest>() {
      @java.lang.Override
      public PostAuthorizationLoginRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationLoginRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationLoginRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationLoginResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return The data.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData();
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос об авторизации пользователя B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginResponse}
   */
  public static final class PostAuthorizationLoginResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse)
      PostAuthorizationLoginResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationLoginResponse.newBuilder() to construct.
    private PostAuthorizationLoginResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationLoginResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationLoginResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Builder.class);
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
       * @return Whether the otpCode field is set.
       */
      boolean hasOtpCode();
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
       * @return The otpCode.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode();
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder();

      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return Whether the sso field is set.
       */
      boolean hasSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return The sso.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder();

      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return Whether the key field is set.
       */
      boolean hasKey();
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return The key.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey();
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder();

      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса авторизации пользователя
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error}
     */
    public static final class Error extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.Builder.class);
      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        OTP_CODE(1),
        SSO(2),
        KEY(3),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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 OTP_CODE;
            case 2: return SSO;
            case 3: return KEY;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int OTP_CODE_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
       * @return Whether the otpCode field is set.
       */
      @java.lang.Override
      public boolean hasOtpCode() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
       * @return The otpCode.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
      }

      public static final int SSO_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return Whether the sso field is set.
       */
      @java.lang.Override
      public boolean hasSso() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return The sso.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }

      public static final int KEY_FIELD_NUMBER = 3;
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return Whether the key field is set.
       */
      @java.lang.Override
      public boolean hasKey() {
        return reasonCase_ == 3;
      }
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return The key.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_);
        }
        if (reasonCase_ == 2) {
          output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        if (reasonCase_ == 3) {
          output.writeMessage(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_);
        }
        if (reasonCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        if (reasonCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getOtpCode()
                .equals(other.getOtpCode())) return false;
            break;
          case 2:
            if (!getSso()
                .equals(other.getSso())) return false;
            break;
          case 3:
            if (!getKey()
                .equals(other.getKey())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + OTP_CODE_FIELD_NUMBER;
            hash = (53 * hash) + getOtpCode().hashCode();
            break;
          case 2:
            hash = (37 * hash) + SSO_FIELD_NUMBER;
            hash = (53 * hash) + getSso().hashCode();
            break;
          case 3:
            hash = (37 * hash) + KEY_FIELD_NUMBER;
            hash = (53 * hash) + getKey().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка запроса авторизации пользователя
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (otpCodeBuilder_ != null) {
            otpCodeBuilder_.clear();
          }
          if (ssoBuilder_ != null) {
            ssoBuilder_.clear();
          }
          if (keyBuilder_ != null) {
            keyBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              otpCodeBuilder_ != null) {
            result.reason_ = otpCodeBuilder_.build();
          }
          if (reasonCase_ == 2 &&
              ssoBuilder_ != null) {
            result.reason_ = ssoBuilder_.build();
          }
          if (reasonCase_ == 3 &&
              keyBuilder_ != null) {
            result.reason_ = keyBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case OTP_CODE: {
              mergeOtpCode(other.getOtpCode());
              break;
            }
            case SSO: {
              mergeSso(other.getSso());
              break;
            }
            case KEY: {
              mergeKey(other.getKey());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getOtpCodeFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getSsoFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 2;
                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getKeyFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 3;
                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder> otpCodeBuilder_;
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         * @return Whether the otpCode field is set.
         */
        @java.lang.Override
        public boolean hasOtpCode() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         * @return The otpCode.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode() {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return otpCodeBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         */
        public Builder setOtpCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error value) {
          if (otpCodeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            otpCodeBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         */
        public Builder setOtpCode(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder builderForValue) {
          if (otpCodeBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            otpCodeBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         */
        public Builder mergeOtpCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error value) {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 1 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              otpCodeBuilder_.mergeFrom(value);
            } else {
              otpCodeBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         */
        public Builder clearOtpCode() {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            otpCodeBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder getOtpCodeBuilder() {
          return getOtpCodeFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder() {
          if ((reasonCase_ == 1) && (otpCodeBuilder_ != null)) {
            return otpCodeBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder> 
            getOtpCodeFieldBuilder() {
          if (otpCodeBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
            }
            otpCodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return otpCodeBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> ssoBuilder_;
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         * @return Whether the sso field is set.
         */
        @java.lang.Override
        public boolean hasSso() {
          return reasonCase_ == 2;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         * @return The sso.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          } else {
            if (reasonCase_ == 2) {
              return ssoBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder setSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            ssoBuilder_.setMessage(value);
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder setSso(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder builderForValue) {
          if (ssoBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            ssoBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder mergeSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 2) {
              ssoBuilder_.mergeFrom(value);
            } else {
              ssoBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder clearSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
            }
            ssoBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder getSsoBuilder() {
          return getSsoFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
          if ((reasonCase_ == 2) && (ssoBuilder_ != null)) {
            return ssoBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> 
            getSsoFieldBuilder() {
          if (ssoBuilder_ == null) {
            if (!(reasonCase_ == 2)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
            }
            ssoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 2;
          onChanged();
          return ssoBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder> keyBuilder_;
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         * @return Whether the key field is set.
         */
        @java.lang.Override
        public boolean hasKey() {
          return reasonCase_ == 3;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         * @return The key.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey() {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          } else {
            if (reasonCase_ == 3) {
              return keyBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder setKey(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError value) {
          if (keyBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            keyBuilder_.setMessage(value);
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder setKey(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder builderForValue) {
          if (keyBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            keyBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder mergeKey(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError value) {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 3 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 3) {
              keyBuilder_.mergeFrom(value);
            } else {
              keyBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder clearKey() {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
            }
            keyBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder getKeyBuilder() {
          return getKeyFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder() {
          if ((reasonCase_ == 3) && (keyBuilder_ != null)) {
            return keyBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder> 
            getKeyFieldBuilder() {
          if (keyBuilder_ == null) {
            if (!(reasonCase_ == 3)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
            }
            keyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 3;
          onChanged();
          return keyBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ERROR(1),
      DATA(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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 2: return DATA;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int ERROR_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
     * @return The error.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error getError() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.ErrorOrBuilder getErrorOrBuilder() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance();
    }

    public static final int DATA_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return The data.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
    }
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (typeCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (typeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse) obj;

      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 1:
          if (!getError()
              .equals(other.getError())) return false;
          break;
        case 2:
          if (!getData()
              .equals(other.getData())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (typeCase_) {
        case 1:
          hash = (37 * hash) + ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getError().hashCode();
          break;
        case 2:
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на запрос об авторизации пользователя B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (errorBuilder_ != null) {
          errorBuilder_.clear();
        }
        if (dataBuilder_ != null) {
          dataBuilder_.clear();
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
        if (typeCase_ == 1 &&
            errorBuilder_ != null) {
          result.type_ = errorBuilder_.build();
        }
        if (typeCase_ == 2 &&
            dataBuilder_ != null) {
          result.type_ = dataBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.getDefaultInstance()) return this;
        switch (other.getTypeCase()) {
          case ERROR: {
            mergeError(other.getError());
            break;
          }
          case DATA: {
            mergeData(other.getData());
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.ErrorOrBuilder> errorBuilder_;
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       * @return Whether the error field is set.
       */
      @java.lang.Override
      public boolean hasError() {
        return typeCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       * @return The error.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error getError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance();
        } else {
          if (typeCase_ == 1) {
            return errorBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.Builder builderForValue) {
        if (errorBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error value) {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 1) {
            errorBuilder_.mergeFrom(value);
          } else {
            errorBuilder_.setMessage(value);
          }
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
          errorBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.Builder getErrorBuilder() {
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.ErrorOrBuilder getErrorOrBuilder() {
        if ((typeCase_ == 1) && (errorBuilder_ != null)) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginResponse.Error error = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.ErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          if (!(typeCase_ == 1)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.getDefaultInstance();
          }
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.ErrorOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse.Error) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 1;
        onChanged();
        return errorBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder> dataBuilder_;
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        } else {
          if (typeCase_ == 2) {
            return dataBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder setData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder setData(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder builderForValue) {
        if (dataBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder mergeData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken value) {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 2) {
            dataBuilder_.mergeFrom(value);
          } else {
            dataBuilder_.setMessage(value);
          }
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder getDataBuilder() {
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder() {
        if ((typeCase_ == 2) && (dataBuilder_ != null)) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          if (!(typeCase_ == 2)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
          }
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 2;
        onChanged();
        return dataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginResponse)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationLoginResponse>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationLoginResponse>() {
      @java.lang.Override
      public PostAuthorizationLoginResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationLoginResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationLoginResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationLoginByPasswordRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return Whether the captchaAnswer field is set.
     */
    boolean hasCaptchaAnswer();
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return The captchaAnswer.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getCaptchaAnswer();
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder getCaptchaAnswerOrBuilder();

    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 3;</code>
     * @return Whether the phoneNumber field is set.
     */
    boolean hasPhoneNumber();
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 3;</code>
     * @return The phoneNumber.
     */
    java.lang.String getPhoneNumber();
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 3;</code>
     * @return The bytes for phoneNumber.
     */
    com.google.protobuf.ByteString
        getPhoneNumberBytes();

    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 4;</code>
     * @return Whether the email field is set.
     */
    boolean hasEmail();
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 4;</code>
     * @return The email.
     */
    java.lang.String getEmail();
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 4;</code>
     * @return The bytes for email.
     */
    com.google.protobuf.ByteString
        getEmailBytes();

    /**
     * <pre>
     * Логин
     * </pre>
     *
     * <code>string login = 5;</code>
     * @return Whether the login field is set.
     */
    boolean hasLogin();
    /**
     * <pre>
     * Логин
     * </pre>
     *
     * <code>string login = 5;</code>
     * @return The login.
     */
    java.lang.String getLogin();
    /**
     * <pre>
     * Логин
     * </pre>
     *
     * <code>string login = 5;</code>
     * @return The bytes for login.
     */
    com.google.protobuf.ByteString
        getLoginBytes();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Запрос на авторизацию по паролю для B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordRequest}
   */
  public static final class PostAuthorizationLoginByPasswordRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordRequest)
      PostAuthorizationLoginByPasswordRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationLoginByPasswordRequest.newBuilder() to construct.
    private PostAuthorizationLoginByPasswordRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationLoginByPasswordRequest() {
      password_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationLoginByPasswordRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.Builder.class);
    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      PHONE_NUMBER(3),
      EMAIL(4),
      LOGIN(5),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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 3: return PHONE_NUMBER;
          case 4: return EMAIL;
          case 5: return LOGIN;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int PASSWORD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CAPTCHA_ANSWER_FIELD_NUMBER = 2;
    private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer captchaAnswer_;
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return Whether the captchaAnswer field is set.
     */
    @java.lang.Override
    public boolean hasCaptchaAnswer() {
      return captchaAnswer_ != null;
    }
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return The captchaAnswer.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getCaptchaAnswer() {
      return captchaAnswer_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
    }
    /**
     * <pre>
     * Ответ на капчу
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder getCaptchaAnswerOrBuilder() {
      return captchaAnswer_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
    }

    public static final int PHONE_NUMBER_FIELD_NUMBER = 3;
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 3;</code>
     * @return Whether the phoneNumber field is set.
     */
    public boolean hasPhoneNumber() {
      return typeCase_ == 3;
    }
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 3;</code>
     * @return The phoneNumber.
     */
    public java.lang.String getPhoneNumber() {
      java.lang.Object ref = "";
      if (typeCase_ == 3) {
        ref = type_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (typeCase_ == 3) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Номер телефона
     * </pre>
     *
     * <code>string phone_number = 3;</code>
     * @return The bytes for phoneNumber.
     */
    public com.google.protobuf.ByteString
        getPhoneNumberBytes() {
      java.lang.Object ref = "";
      if (typeCase_ == 3) {
        ref = type_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (typeCase_ == 3) {
          type_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EMAIL_FIELD_NUMBER = 4;
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 4;</code>
     * @return Whether the email field is set.
     */
    public boolean hasEmail() {
      return typeCase_ == 4;
    }
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 4;</code>
     * @return The email.
     */
    public java.lang.String getEmail() {
      java.lang.Object ref = "";
      if (typeCase_ == 4) {
        ref = type_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (typeCase_ == 4) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Электронная почта
     * </pre>
     *
     * <code>string email = 4;</code>
     * @return The bytes for email.
     */
    public com.google.protobuf.ByteString
        getEmailBytes() {
      java.lang.Object ref = "";
      if (typeCase_ == 4) {
        ref = type_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (typeCase_ == 4) {
          type_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGIN_FIELD_NUMBER = 5;
    /**
     * <pre>
     * Логин
     * </pre>
     *
     * <code>string login = 5;</code>
     * @return Whether the login field is set.
     */
    public boolean hasLogin() {
      return typeCase_ == 5;
    }
    /**
     * <pre>
     * Логин
     * </pre>
     *
     * <code>string login = 5;</code>
     * @return The login.
     */
    public java.lang.String getLogin() {
      java.lang.Object ref = "";
      if (typeCase_ == 5) {
        ref = type_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (typeCase_ == 5) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Логин
     * </pre>
     *
     * <code>string login = 5;</code>
     * @return The bytes for login.
     */
    public com.google.protobuf.ByteString
        getLoginBytes() {
      java.lang.Object ref = "";
      if (typeCase_ == 5) {
        ref = type_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (typeCase_ == 5) {
          type_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, password_);
      }
      if (captchaAnswer_ != null) {
        output.writeMessage(2, getCaptchaAnswer());
      }
      if (typeCase_ == 3) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_);
      }
      if (typeCase_ == 4) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, type_);
      }
      if (typeCase_ == 5) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, password_);
      }
      if (captchaAnswer_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getCaptchaAnswer());
      }
      if (typeCase_ == 3) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, type_);
      }
      if (typeCase_ == 4) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, type_);
      }
      if (typeCase_ == 5) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest) obj;

      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (hasCaptchaAnswer() != other.hasCaptchaAnswer()) return false;
      if (hasCaptchaAnswer()) {
        if (!getCaptchaAnswer()
            .equals(other.getCaptchaAnswer())) return false;
      }
      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 3:
          if (!getPhoneNumber()
              .equals(other.getPhoneNumber())) return false;
          break;
        case 4:
          if (!getEmail()
              .equals(other.getEmail())) return false;
          break;
        case 5:
          if (!getLogin()
              .equals(other.getLogin())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      if (hasCaptchaAnswer()) {
        hash = (37 * hash) + CAPTCHA_ANSWER_FIELD_NUMBER;
        hash = (53 * hash) + getCaptchaAnswer().hashCode();
      }
      switch (typeCase_) {
        case 3:
          hash = (37 * hash) + PHONE_NUMBER_FIELD_NUMBER;
          hash = (53 * hash) + getPhoneNumber().hashCode();
          break;
        case 4:
          hash = (37 * hash) + EMAIL_FIELD_NUMBER;
          hash = (53 * hash) + getEmail().hashCode();
          break;
        case 5:
          hash = (37 * hash) + LOGIN_FIELD_NUMBER;
          hash = (53 * hash) + getLogin().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Запрос на авторизацию по паролю для B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordRequest)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        password_ = "";
        captchaAnswer_ = null;
        if (captchaAnswerBuilder_ != null) {
          captchaAnswerBuilder_.dispose();
          captchaAnswerBuilder_ = null;
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.captchaAnswer_ = captchaAnswerBuilder_ == null
              ? captchaAnswer_
              : captchaAnswerBuilder_.build();
        }
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest.getDefaultInstance()) return this;
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasCaptchaAnswer()) {
          mergeCaptchaAnswer(other.getCaptchaAnswer());
        }
        switch (other.getTypeCase()) {
          case PHONE_NUMBER: {
            typeCase_ = 3;
            type_ = other.type_;
            onChanged();
            break;
          }
          case EMAIL: {
            typeCase_ = 4;
            type_ = other.type_;
            onChanged();
            break;
          }
          case LOGIN: {
            typeCase_ = 5;
            type_ = other.type_;
            onChanged();
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getCaptchaAnswerFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                typeCase_ = 3;
                type_ = s;
                break;
              } // case 26
              case 34: {
                java.lang.String s = input.readStringRequireUtf8();
                typeCase_ = 4;
                type_ = s;
                break;
              } // case 34
              case 42: {
                java.lang.String s = input.readStringRequireUtf8();
                typeCase_ = 5;
                type_ = s;
                break;
              } // case 42
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer captchaAnswer_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder> captchaAnswerBuilder_;
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       * @return Whether the captchaAnswer field is set.
       */
      public boolean hasCaptchaAnswer() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       * @return The captchaAnswer.
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer getCaptchaAnswer() {
        if (captchaAnswerBuilder_ == null) {
          return captchaAnswer_ == null ? ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
        } else {
          return captchaAnswerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      public Builder setCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer value) {
        if (captchaAnswerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          captchaAnswer_ = value;
        } else {
          captchaAnswerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      public Builder setCaptchaAnswer(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder builderForValue) {
        if (captchaAnswerBuilder_ == null) {
          captchaAnswer_ = builderForValue.build();
        } else {
          captchaAnswerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      public Builder mergeCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer value) {
        if (captchaAnswerBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            captchaAnswer_ != null &&
            captchaAnswer_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance()) {
            getCaptchaAnswerBuilder().mergeFrom(value);
          } else {
            captchaAnswer_ = value;
          }
        } else {
          captchaAnswerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      public Builder clearCaptchaAnswer() {
        bitField0_ = (bitField0_ & ~0x00000002);
        captchaAnswer_ = null;
        if (captchaAnswerBuilder_ != null) {
          captchaAnswerBuilder_.dispose();
          captchaAnswerBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder getCaptchaAnswerBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getCaptchaAnswerFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder getCaptchaAnswerOrBuilder() {
        if (captchaAnswerBuilder_ != null) {
          return captchaAnswerBuilder_.getMessageOrBuilder();
        } else {
          return captchaAnswer_ == null ?
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.getDefaultInstance() : captchaAnswer_;
        }
      }
      /**
       * <pre>
       * Ответ на капчу
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer captcha_answer = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder> 
          getCaptchaAnswerFieldBuilder() {
        if (captchaAnswerBuilder_ == null) {
          captchaAnswerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswerOrBuilder>(
                  getCaptchaAnswer(),
                  getParentForChildren(),
                  isClean());
          captchaAnswer_ = null;
        }
        return captchaAnswerBuilder_;
      }

      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 3;</code>
       * @return Whether the phoneNumber field is set.
       */
      @java.lang.Override
      public boolean hasPhoneNumber() {
        return typeCase_ == 3;
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 3;</code>
       * @return The phoneNumber.
       */
      @java.lang.Override
      public java.lang.String getPhoneNumber() {
        java.lang.Object ref = "";
        if (typeCase_ == 3) {
          ref = type_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (typeCase_ == 3) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 3;</code>
       * @return The bytes for phoneNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPhoneNumberBytes() {
        java.lang.Object ref = "";
        if (typeCase_ == 3) {
          ref = type_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (typeCase_ == 3) {
            type_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 3;</code>
       * @param value The phoneNumber to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        typeCase_ = 3;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPhoneNumber() {
        if (typeCase_ == 3) {
          typeCase_ = 0;
          type_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Номер телефона
       * </pre>
       *
       * <code>string phone_number = 3;</code>
       * @param value The bytes for phoneNumber to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        typeCase_ = 3;
        type_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 4;</code>
       * @return Whether the email field is set.
       */
      @java.lang.Override
      public boolean hasEmail() {
        return typeCase_ == 4;
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 4;</code>
       * @return The email.
       */
      @java.lang.Override
      public java.lang.String getEmail() {
        java.lang.Object ref = "";
        if (typeCase_ == 4) {
          ref = type_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (typeCase_ == 4) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 4;</code>
       * @return The bytes for email.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEmailBytes() {
        java.lang.Object ref = "";
        if (typeCase_ == 4) {
          ref = type_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (typeCase_ == 4) {
            type_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 4;</code>
       * @param value The email to set.
       * @return This builder for chaining.
       */
      public Builder setEmail(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        typeCase_ = 4;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmail() {
        if (typeCase_ == 4) {
          typeCase_ = 0;
          type_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Электронная почта
       * </pre>
       *
       * <code>string email = 4;</code>
       * @param value The bytes for email to set.
       * @return This builder for chaining.
       */
      public Builder setEmailBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        typeCase_ = 4;
        type_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * Логин
       * </pre>
       *
       * <code>string login = 5;</code>
       * @return Whether the login field is set.
       */
      @java.lang.Override
      public boolean hasLogin() {
        return typeCase_ == 5;
      }
      /**
       * <pre>
       * Логин
       * </pre>
       *
       * <code>string login = 5;</code>
       * @return The login.
       */
      @java.lang.Override
      public java.lang.String getLogin() {
        java.lang.Object ref = "";
        if (typeCase_ == 5) {
          ref = type_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (typeCase_ == 5) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Логин
       * </pre>
       *
       * <code>string login = 5;</code>
       * @return The bytes for login.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getLoginBytes() {
        java.lang.Object ref = "";
        if (typeCase_ == 5) {
          ref = type_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (typeCase_ == 5) {
            type_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Логин
       * </pre>
       *
       * <code>string login = 5;</code>
       * @param value The login to set.
       * @return This builder for chaining.
       */
      public Builder setLogin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        typeCase_ = 5;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Логин
       * </pre>
       *
       * <code>string login = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogin() {
        if (typeCase_ == 5) {
          typeCase_ = 0;
          type_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Логин
       * </pre>
       *
       * <code>string login = 5;</code>
       * @param value The bytes for login to set.
       * @return This builder for chaining.
       */
      public Builder setLoginBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        typeCase_ = 5;
        type_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordRequest)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordRequest)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationLoginByPasswordRequest>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationLoginByPasswordRequest>() {
      @java.lang.Override
      public PostAuthorizationLoginByPasswordRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationLoginByPasswordRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationLoginByPasswordRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationLoginByPasswordResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return The data.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData();
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder();

    /**
     * <pre>
     * Данные для двухфакторной аутентификации
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
     * @return Whether the data2fa field is set.
     */
    boolean hasData2Fa();
    /**
     * <pre>
     * Данные для двухфакторной аутентификации
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
     * @return The data2fa.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa getData2Fa();
    /**
     * <pre>
     * Данные для двухфакторной аутентификации
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2faOrBuilder getData2FaOrBuilder();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос об авторизации по паролю пользователя B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse}
   */
  public static final class PostAuthorizationLoginByPasswordResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse)
      PostAuthorizationLoginByPasswordResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationLoginByPasswordResponse.newBuilder() to construct.
    private PostAuthorizationLoginByPasswordResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationLoginByPasswordResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationLoginByPasswordResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Builder.class);
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Ошибка капчи
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return Whether the captchaAnswer field is set.
       */
      boolean hasCaptchaAnswer();
      /**
       * <pre>
       * Ошибка капчи
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return The captchaAnswer.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getCaptchaAnswer();
      /**
       * <pre>
       * Ошибка капчи
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder getCaptchaAnswerOrBuilder();

      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return Whether the sso field is set.
       */
      boolean hasSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return The sso.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder();

      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return Whether the key field is set.
       */
      boolean hasKey();
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return The key.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey();
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder();

      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
       * @return Whether the otpCode field is set.
       */
      boolean hasOtpCode();
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
       * @return The otpCode.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode();
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder();

      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса авторизации по паролю пользователя
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error}
     */
    public static final class Error extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.Builder.class);
      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        CAPTCHA_ANSWER(1),
        SSO(2),
        KEY(3),
        OTP_CODE(4),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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 CAPTCHA_ANSWER;
            case 2: return SSO;
            case 3: return KEY;
            case 4: return OTP_CODE;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int CAPTCHA_ANSWER_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка капчи
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return Whether the captchaAnswer field is set.
       */
      @java.lang.Override
      public boolean hasCaptchaAnswer() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка капчи
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       * @return The captchaAnswer.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getCaptchaAnswer() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка капчи
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder getCaptchaAnswerOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
      }

      public static final int SSO_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return Whether the sso field is set.
       */
      @java.lang.Override
      public boolean hasSso() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       * @return The sso.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }

      public static final int KEY_FIELD_NUMBER = 3;
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return Whether the key field is set.
       */
      @java.lang.Override
      public boolean hasKey() {
        return reasonCase_ == 3;
      }
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       * @return The key.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
      }

      public static final int OTP_CODE_FIELD_NUMBER = 4;
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
       * @return Whether the otpCode field is set.
       */
      @java.lang.Override
      public boolean hasOtpCode() {
        return reasonCase_ == 4;
      }
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
       * @return The otpCode.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode() {
        if (reasonCase_ == 4) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка отп-кода
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder() {
        if (reasonCase_ == 4) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_);
        }
        if (reasonCase_ == 2) {
          output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        if (reasonCase_ == 3) {
          output.writeMessage(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_);
        }
        if (reasonCase_ == 4) {
          output.writeMessage(4, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_);
        }
        if (reasonCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        if (reasonCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_);
        }
        if (reasonCase_ == 4) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getCaptchaAnswer()
                .equals(other.getCaptchaAnswer())) return false;
            break;
          case 2:
            if (!getSso()
                .equals(other.getSso())) return false;
            break;
          case 3:
            if (!getKey()
                .equals(other.getKey())) return false;
            break;
          case 4:
            if (!getOtpCode()
                .equals(other.getOtpCode())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + CAPTCHA_ANSWER_FIELD_NUMBER;
            hash = (53 * hash) + getCaptchaAnswer().hashCode();
            break;
          case 2:
            hash = (37 * hash) + SSO_FIELD_NUMBER;
            hash = (53 * hash) + getSso().hashCode();
            break;
          case 3:
            hash = (37 * hash) + KEY_FIELD_NUMBER;
            hash = (53 * hash) + getKey().hashCode();
            break;
          case 4:
            hash = (37 * hash) + OTP_CODE_FIELD_NUMBER;
            hash = (53 * hash) + getOtpCode().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка запроса авторизации по паролю пользователя
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (captchaAnswerBuilder_ != null) {
            captchaAnswerBuilder_.clear();
          }
          if (ssoBuilder_ != null) {
            ssoBuilder_.clear();
          }
          if (keyBuilder_ != null) {
            keyBuilder_.clear();
          }
          if (otpCodeBuilder_ != null) {
            otpCodeBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              captchaAnswerBuilder_ != null) {
            result.reason_ = captchaAnswerBuilder_.build();
          }
          if (reasonCase_ == 2 &&
              ssoBuilder_ != null) {
            result.reason_ = ssoBuilder_.build();
          }
          if (reasonCase_ == 3 &&
              keyBuilder_ != null) {
            result.reason_ = keyBuilder_.build();
          }
          if (reasonCase_ == 4 &&
              otpCodeBuilder_ != null) {
            result.reason_ = otpCodeBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case CAPTCHA_ANSWER: {
              mergeCaptchaAnswer(other.getCaptchaAnswer());
              break;
            }
            case SSO: {
              mergeSso(other.getSso());
              break;
            }
            case KEY: {
              mergeKey(other.getKey());
              break;
            }
            case OTP_CODE: {
              mergeOtpCode(other.getOtpCode());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getCaptchaAnswerFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getSsoFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 2;
                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getKeyFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 3;
                  break;
                } // case 26
                case 34: {
                  input.readMessage(
                      getOtpCodeFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 4;
                  break;
                } // case 34
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder> captchaAnswerBuilder_;
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         * @return Whether the captchaAnswer field is set.
         */
        @java.lang.Override
        public boolean hasCaptchaAnswer() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         * @return The captchaAnswer.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error getCaptchaAnswer() {
          if (captchaAnswerBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return captchaAnswerBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder setCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error value) {
          if (captchaAnswerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            captchaAnswerBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder setCaptchaAnswer(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder builderForValue) {
          if (captchaAnswerBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            captchaAnswerBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder mergeCaptchaAnswer(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error value) {
          if (captchaAnswerBuilder_ == null) {
            if (reasonCase_ == 1 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              captchaAnswerBuilder_.mergeFrom(value);
            } else {
              captchaAnswerBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public Builder clearCaptchaAnswer() {
          if (captchaAnswerBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            captchaAnswerBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder getCaptchaAnswerBuilder() {
          return getCaptchaAnswerFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder getCaptchaAnswerOrBuilder() {
          if ((reasonCase_ == 1) && (captchaAnswerBuilder_ != null)) {
            return captchaAnswerBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка капчи
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.CaptchaAnswer.Error captcha_answer = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder> 
            getCaptchaAnswerFieldBuilder() {
          if (captchaAnswerBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.getDefaultInstance();
            }
            captchaAnswerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.ErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.CaptchaAnswer.Error) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return captchaAnswerBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> ssoBuilder_;
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         * @return Whether the sso field is set.
         */
        @java.lang.Override
        public boolean hasSso() {
          return reasonCase_ == 2;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         * @return The sso.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          } else {
            if (reasonCase_ == 2) {
              return ssoBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder setSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            ssoBuilder_.setMessage(value);
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder setSso(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder builderForValue) {
          if (ssoBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            ssoBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder mergeSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 2) {
              ssoBuilder_.mergeFrom(value);
            } else {
              ssoBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public Builder clearSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
            }
            ssoBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder getSsoBuilder() {
          return getSsoFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
          if ((reasonCase_ == 2) && (ssoBuilder_ != null)) {
            return ssoBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> 
            getSsoFieldBuilder() {
          if (ssoBuilder_ == null) {
            if (!(reasonCase_ == 2)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
            }
            ssoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 2;
          onChanged();
          return ssoBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder> keyBuilder_;
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         * @return Whether the key field is set.
         */
        @java.lang.Override
        public boolean hasKey() {
          return reasonCase_ == 3;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         * @return The key.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey() {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          } else {
            if (reasonCase_ == 3) {
              return keyBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder setKey(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError value) {
          if (keyBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            keyBuilder_.setMessage(value);
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder setKey(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder builderForValue) {
          if (keyBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            keyBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder mergeKey(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError value) {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 3 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 3) {
              keyBuilder_.mergeFrom(value);
            } else {
              keyBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public Builder clearKey() {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
            }
            keyBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder getKeyBuilder() {
          return getKeyFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder() {
          if ((reasonCase_ == 3) && (keyBuilder_ != null)) {
            return keyBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder> 
            getKeyFieldBuilder() {
          if (keyBuilder_ == null) {
            if (!(reasonCase_ == 3)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
            }
            keyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 3;
          onChanged();
          return keyBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder> otpCodeBuilder_;
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         * @return Whether the otpCode field is set.
         */
        @java.lang.Override
        public boolean hasOtpCode() {
          return reasonCase_ == 4;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         * @return The otpCode.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode() {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 4) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          } else {
            if (reasonCase_ == 4) {
              return otpCodeBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         */
        public Builder setOtpCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error value) {
          if (otpCodeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            otpCodeBuilder_.setMessage(value);
          }
          reasonCase_ = 4;
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         */
        public Builder setOtpCode(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder builderForValue) {
          if (otpCodeBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            otpCodeBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 4;
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         */
        public Builder mergeOtpCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error value) {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 4 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 4) {
              otpCodeBuilder_.mergeFrom(value);
            } else {
              otpCodeBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 4;
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         */
        public Builder clearOtpCode() {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 4) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 4) {
              reasonCase_ = 0;
              reason_ = null;
            }
            otpCodeBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder getOtpCodeBuilder() {
          return getOtpCodeFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder() {
          if ((reasonCase_ == 4) && (otpCodeBuilder_ != null)) {
            return otpCodeBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 4) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка отп-кода
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder> 
            getOtpCodeFieldBuilder() {
          if (otpCodeBuilder_ == null) {
            if (!(reasonCase_ == 4)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
            }
            otpCodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 4;
          onChanged();
          return otpCodeBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ERROR(1),
      DATA(2),
      DATA2FA(3),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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 2: return DATA;
          case 3: return DATA2FA;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int ERROR_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
     * @return The error.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error getError() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.ErrorOrBuilder getErrorOrBuilder() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance();
    }

    public static final int DATA_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return The data.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
    }
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
    }

    public static final int DATA2FA_FIELD_NUMBER = 3;
    /**
     * <pre>
     * Данные для двухфакторной аутентификации
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
     * @return Whether the data2fa field is set.
     */
    @java.lang.Override
    public boolean hasData2Fa() {
      return typeCase_ == 3;
    }
    /**
     * <pre>
     * Данные для двухфакторной аутентификации
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
     * @return The data2fa.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa getData2Fa() {
      if (typeCase_ == 3) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance();
    }
    /**
     * <pre>
     * Данные для двухфакторной аутентификации
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2faOrBuilder getData2FaOrBuilder() {
      if (typeCase_ == 3) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (typeCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_);
      }
      if (typeCase_ == 3) {
        output.writeMessage(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (typeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_);
      }
      if (typeCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse) obj;

      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 1:
          if (!getError()
              .equals(other.getError())) return false;
          break;
        case 2:
          if (!getData()
              .equals(other.getData())) return false;
          break;
        case 3:
          if (!getData2Fa()
              .equals(other.getData2Fa())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (typeCase_) {
        case 1:
          hash = (37 * hash) + ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getError().hashCode();
          break;
        case 2:
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
          break;
        case 3:
          hash = (37 * hash) + DATA2FA_FIELD_NUMBER;
          hash = (53 * hash) + getData2Fa().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на запрос об авторизации по паролю пользователя B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (errorBuilder_ != null) {
          errorBuilder_.clear();
        }
        if (dataBuilder_ != null) {
          dataBuilder_.clear();
        }
        if (data2FaBuilder_ != null) {
          data2FaBuilder_.clear();
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
        if (typeCase_ == 1 &&
            errorBuilder_ != null) {
          result.type_ = errorBuilder_.build();
        }
        if (typeCase_ == 2 &&
            dataBuilder_ != null) {
          result.type_ = dataBuilder_.build();
        }
        if (typeCase_ == 3 &&
            data2FaBuilder_ != null) {
          result.type_ = data2FaBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.getDefaultInstance()) return this;
        switch (other.getTypeCase()) {
          case ERROR: {
            mergeError(other.getError());
            break;
          }
          case DATA: {
            mergeData(other.getData());
            break;
          }
          case DATA2FA: {
            mergeData2Fa(other.getData2Fa());
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 2;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getData2FaFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 3;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.ErrorOrBuilder> errorBuilder_;
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       * @return Whether the error field is set.
       */
      @java.lang.Override
      public boolean hasError() {
        return typeCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       * @return The error.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error getError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance();
        } else {
          if (typeCase_ == 1) {
            return errorBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.Builder builderForValue) {
        if (errorBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error value) {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 1) {
            errorBuilder_.mergeFrom(value);
          } else {
            errorBuilder_.setMessage(value);
          }
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
          errorBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.Builder getErrorBuilder() {
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.ErrorOrBuilder getErrorOrBuilder() {
        if ((typeCase_ == 1) && (errorBuilder_ != null)) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse.Error error = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.ErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          if (!(typeCase_ == 1)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.getDefaultInstance();
          }
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.ErrorOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse.Error) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 1;
        onChanged();
        return errorBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder> dataBuilder_;
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        } else {
          if (typeCase_ == 2) {
            return dataBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder setData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder setData(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder builderForValue) {
        if (dataBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder mergeData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken value) {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 2) {
            dataBuilder_.mergeFrom(value);
          } else {
            dataBuilder_.setMessage(value);
          }
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder getDataBuilder() {
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder() {
        if ((typeCase_ == 2) && (dataBuilder_ != null)) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          if (!(typeCase_ == 2)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
          }
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 2;
        onChanged();
        return dataBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2faOrBuilder> data2FaBuilder_;
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       * @return Whether the data2fa field is set.
       */
      @java.lang.Override
      public boolean hasData2Fa() {
        return typeCase_ == 3;
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       * @return The data2fa.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa getData2Fa() {
        if (data2FaBuilder_ == null) {
          if (typeCase_ == 3) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance();
        } else {
          if (typeCase_ == 3) {
            return data2FaBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       */
      public Builder setData2Fa(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa value) {
        if (data2FaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          data2FaBuilder_.setMessage(value);
        }
        typeCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       */
      public Builder setData2Fa(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.Builder builderForValue) {
        if (data2FaBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          data2FaBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       */
      public Builder mergeData2Fa(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa value) {
        if (data2FaBuilder_ == null) {
          if (typeCase_ == 3 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 3) {
            data2FaBuilder_.mergeFrom(value);
          } else {
            data2FaBuilder_.setMessage(value);
          }
        }
        typeCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       */
      public Builder clearData2Fa() {
        if (data2FaBuilder_ == null) {
          if (typeCase_ == 3) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 3) {
            typeCase_ = 0;
            type_ = null;
          }
          data2FaBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.Builder getData2FaBuilder() {
        return getData2FaFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2faOrBuilder getData2FaOrBuilder() {
        if ((typeCase_ == 3) && (data2FaBuilder_ != null)) {
          return data2FaBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 3) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Данные для двухфакторной аутентификации
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.Data2fa data2fa = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2faOrBuilder> 
          getData2FaFieldBuilder() {
        if (data2FaBuilder_ == null) {
          if (!(typeCase_ == 3)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance();
          }
          data2FaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2faOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 3;
        onChanged();
        return data2FaBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationLoginByPasswordResponse)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationLoginByPasswordResponse>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationLoginByPasswordResponse>() {
      @java.lang.Override
      public PostAuthorizationLoginByPasswordResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationLoginByPasswordResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationLoginByPasswordResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationLoginByPasswordResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationCheckCodeRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The actionId.
     */
    java.lang.String getActionId();
    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for actionId.
     */
    com.google.protobuf.ByteString
        getActionIdBytes();

    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    java.lang.String getCodeId();
    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    com.google.protobuf.ByteString
        getCodeIdBytes();

    /**
     * <pre>
     * Код, введенный пользователем
     * </pre>
     *
     * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    java.lang.String getCode();
    /**
     * <pre>
     * Код, введенный пользователем
     * </pre>
     *
     * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    com.google.protobuf.ByteString
        getCodeBytes();
  }
  /**
   * <pre>
   * Запрос проверки кода двухфакторной авторизации и активация сессии для B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationCheckCodeRequest}
   */
  public static final class PostAuthorizationCheckCodeRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeRequest)
      PostAuthorizationCheckCodeRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationCheckCodeRequest.newBuilder() to construct.
    private PostAuthorizationCheckCodeRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationCheckCodeRequest() {
      sessionId_ = "";
      actionId_ = "";
      codeId_ = "";
      code_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationCheckCodeRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest.Builder.class);
    }

    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACTION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object actionId_ = "";
    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The actionId.
     */
    @java.lang.Override
    public java.lang.String getActionId() {
      java.lang.Object ref = actionId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        actionId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for actionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getActionIdBytes() {
      java.lang.Object ref = actionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        actionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CODE_ID_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object codeId_ = "";
    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    @java.lang.Override
    public java.lang.String getCodeId() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        codeId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCodeIdBytes() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        codeId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CODE_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object code_ = "";
    /**
     * <pre>
     * Код, введенный пользователем
     * </pre>
     *
     * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    @java.lang.Override
    public java.lang.String getCode() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        code_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Код, введенный пользователем
     * </pre>
     *
     * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCodeBytes() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        code_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, actionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, codeId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, code_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, actionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, codeId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, code_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (!getActionId()
          .equals(other.getActionId())) return false;
      if (!getCodeId()
          .equals(other.getCodeId())) return false;
      if (!getCode()
          .equals(other.getCode())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + ACTION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getActionId().hashCode();
      hash = (37 * hash) + CODE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCodeId().hashCode();
      hash = (37 * hash) + CODE_FIELD_NUMBER;
      hash = (53 * hash) + getCode().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Запрос проверки кода двухфакторной авторизации и активация сессии для B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationCheckCodeRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeRequest)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        actionId_ = "";
        codeId_ = "";
        code_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.actionId_ = actionId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.codeId_ = codeId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.code_ = code_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getActionId().isEmpty()) {
          actionId_ = other.actionId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getCodeId().isEmpty()) {
          codeId_ = other.codeId_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getCode().isEmpty()) {
          code_ = other.code_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                actionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                codeId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                code_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object sessionId_ = "";
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object actionId_ = "";
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The actionId.
       */
      public java.lang.String getActionId() {
        java.lang.Object ref = actionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          actionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for actionId.
       */
      public com.google.protobuf.ByteString
          getActionIdBytes() {
        java.lang.Object ref = actionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          actionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The actionId to set.
       * @return This builder for chaining.
       */
      public Builder setActionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        actionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearActionId() {
        actionId_ = getDefaultInstance().getActionId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for actionId to set.
       * @return This builder for chaining.
       */
      public Builder setActionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        actionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object codeId_ = "";
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The codeId.
       */
      public java.lang.String getCodeId() {
        java.lang.Object ref = codeId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          codeId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for codeId.
       */
      public com.google.protobuf.ByteString
          getCodeIdBytes() {
        java.lang.Object ref = codeId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          codeId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        codeId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCodeId() {
        codeId_ = getDefaultInstance().getCodeId();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        codeId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object code_ = "";
      /**
       * <pre>
       * Код, введенный пользователем
       * </pre>
       *
       * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The code.
       */
      public java.lang.String getCode() {
        java.lang.Object ref = code_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          code_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Код, введенный пользователем
       * </pre>
       *
       * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for code.
       */
      public com.google.protobuf.ByteString
          getCodeBytes() {
        java.lang.Object ref = code_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          code_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Код, введенный пользователем
       * </pre>
       *
       * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The code to set.
       * @return This builder for chaining.
       */
      public Builder setCode(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        code_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Код, введенный пользователем
       * </pre>
       *
       * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCode() {
        code_ = getDefaultInstance().getCode();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Код, введенный пользователем
       * </pre>
       *
       * <code>string code = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for code to set.
       * @return This builder for chaining.
       */
      public Builder setCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        code_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeRequest)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeRequest)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationCheckCodeRequest>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationCheckCodeRequest>() {
      @java.lang.Override
      public PostAuthorizationCheckCodeRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationCheckCodeRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationCheckCodeRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostAuthorizationCheckCodeResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return The data.
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData();
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     */
    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder();

    ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос проверки кода двухфакторной авторизации и активация сессии для B2B
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse}
   */
  public static final class PostAuthorizationCheckCodeResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse)
      PostAuthorizationCheckCodeResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostAuthorizationCheckCodeResponse.newBuilder() to construct.
    private PostAuthorizationCheckCodeResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PostAuthorizationCheckCodeResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PostAuthorizationCheckCodeResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Builder.class);
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
       * @return Whether the sso field is set.
       */
      boolean hasSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
       * @return The sso.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso();
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder();

      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
       * @return Whether the key field is set.
       */
      boolean hasKey();
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
       * @return The key.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey();
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder();

      /**
       * <pre>
       * Ошибка кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
       * @return Whether the otpCode field is set.
       */
      boolean hasOtpCode();
      /**
       * <pre>
       * Ошибка кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
       * @return The otpCode.
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode();
      /**
       * <pre>
       * Ошибка кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
       */
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder();

      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса авторизации по паролю пользователя
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error}
     */
    public static final class Error extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.Builder.class);
      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        SSO(1),
        KEY(2),
        OTP_CODE(3),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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 SSO;
            case 2: return KEY;
            case 3: return OTP_CODE;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int SSO_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
       * @return Whether the sso field is set.
       */
      @java.lang.Override
      public boolean hasSso() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
       * @return The sso.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка из ССО
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
      }

      public static final int KEY_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
       * @return Whether the key field is set.
       */
      @java.lang.Override
      public boolean hasKey() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
       * @return The key.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка из сервисов ключа
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
      }

      public static final int OTP_CODE_FIELD_NUMBER = 3;
      /**
       * <pre>
       * Ошибка кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
       * @return Whether the otpCode field is set.
       */
      @java.lang.Override
      public boolean hasOtpCode() {
        return reasonCase_ == 3;
      }
      /**
       * <pre>
       * Ошибка кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
       * @return The otpCode.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка кода подтверждения
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
        }
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        if (reasonCase_ == 2) {
          output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_);
        }
        if (reasonCase_ == 3) {
          output.writeMessage(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_);
        }
        if (reasonCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_);
        }
        if (reasonCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getSso()
                .equals(other.getSso())) return false;
            break;
          case 2:
            if (!getKey()
                .equals(other.getKey())) return false;
            break;
          case 3:
            if (!getOtpCode()
                .equals(other.getOtpCode())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + SSO_FIELD_NUMBER;
            hash = (53 * hash) + getSso().hashCode();
            break;
          case 2:
            hash = (37 * hash) + KEY_FIELD_NUMBER;
            hash = (53 * hash) + getKey().hashCode();
            break;
          case 3:
            hash = (37 * hash) + OTP_CODE_FIELD_NUMBER;
            hash = (53 * hash) + getOtpCode().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка запроса авторизации по паролю пользователя
       * </pre>
       *
       * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error)
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.Builder.class);
        }

        // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (ssoBuilder_ != null) {
            ssoBuilder_.clear();
          }
          if (keyBuilder_ != null) {
            keyBuilder_.clear();
          }
          if (otpCodeBuilder_ != null) {
            otpCodeBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error getDefaultInstanceForType() {
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error build() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error buildPartial() {
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              ssoBuilder_ != null) {
            result.reason_ = ssoBuilder_.build();
          }
          if (reasonCase_ == 2 &&
              keyBuilder_ != null) {
            result.reason_ = keyBuilder_.build();
          }
          if (reasonCase_ == 3 &&
              otpCodeBuilder_ != null) {
            result.reason_ = otpCodeBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) {
            return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error other) {
          if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case SSO: {
              mergeSso(other.getSso());
              break;
            }
            case KEY: {
              mergeKey(other.getKey());
              break;
            }
            case OTP_CODE: {
              mergeOtpCode(other.getOtpCode());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getSsoFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getKeyFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 2;
                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getOtpCodeFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 3;
                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> ssoBuilder_;
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         * @return Whether the sso field is set.
         */
        @java.lang.Override
        public boolean hasSso() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         * @return The sso.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError getSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return ssoBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         */
        public Builder setSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            ssoBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         */
        public Builder setSso(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder builderForValue) {
          if (ssoBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            ssoBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         */
        public Builder mergeSso(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError value) {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 1 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              ssoBuilder_.mergeFrom(value);
            } else {
              ssoBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         */
        public Builder clearSso() {
          if (ssoBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            ssoBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder getSsoBuilder() {
          return getSsoFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder getSsoOrBuilder() {
          if ((reasonCase_ == 1) && (ssoBuilder_ != null)) {
            return ssoBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 1) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из ССО
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.SsoError sso = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder> 
            getSsoFieldBuilder() {
          if (ssoBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.getDefaultInstance();
            }
            ssoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.SsoError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return ssoBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder> keyBuilder_;
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         * @return Whether the key field is set.
         */
        @java.lang.Override
        public boolean hasKey() {
          return reasonCase_ == 2;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         * @return The key.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError getKey() {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          } else {
            if (reasonCase_ == 2) {
              return keyBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         */
        public Builder setKey(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError value) {
          if (keyBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            keyBuilder_.setMessage(value);
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         */
        public Builder setKey(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder builderForValue) {
          if (keyBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            keyBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         */
        public Builder mergeKey(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError value) {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 2 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 2) {
              keyBuilder_.mergeFrom(value);
            } else {
              keyBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 2;
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         */
        public Builder clearKey() {
          if (keyBuilder_ == null) {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 2) {
              reasonCase_ = 0;
              reason_ = null;
            }
            keyBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder getKeyBuilder() {
          return getKeyFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder getKeyOrBuilder() {
          if ((reasonCase_ == 2) && (keyBuilder_ != null)) {
            return keyBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 2) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка из сервисов ключа
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.KeyError key = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder> 
            getKeyFieldBuilder() {
          if (keyBuilder_ == null) {
            if (!(reasonCase_ == 2)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.getDefaultInstance();
            }
            keyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.KeyError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 2;
          onChanged();
          return keyBuilder_;
        }

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder> otpCodeBuilder_;
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         * @return Whether the otpCode field is set.
         */
        @java.lang.Override
        public boolean hasOtpCode() {
          return reasonCase_ == 3;
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         * @return The otpCode.
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error getOtpCode() {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          } else {
            if (reasonCase_ == 3) {
              return otpCodeBuilder_.getMessage();
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         */
        public Builder setOtpCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error value) {
          if (otpCodeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            otpCodeBuilder_.setMessage(value);
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         */
        public Builder setOtpCode(
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder builderForValue) {
          if (otpCodeBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            otpCodeBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         */
        public Builder mergeOtpCode(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error value) {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 3 &&
                reason_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance()) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_)
                  .mergeFrom(value).buildPartial();
            } else {
              reason_ = value;
            }
            onChanged();
          } else {
            if (reasonCase_ == 3) {
              otpCodeBuilder_.mergeFrom(value);
            } else {
              otpCodeBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 3;
          return this;
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         */
        public Builder clearOtpCode() {
          if (otpCodeBuilder_ == null) {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 3) {
              reasonCase_ = 0;
              reason_ = null;
            }
            otpCodeBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         */
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder getOtpCodeBuilder() {
          return getOtpCodeFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder getOtpCodeOrBuilder() {
          if ((reasonCase_ == 3) && (otpCodeBuilder_ != null)) {
            return otpCodeBuilder_.getMessageOrBuilder();
          } else {
            if (reasonCase_ == 3) {
              return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_;
            }
            return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка кода подтверждения
         * </pre>
         *
         * <code>.keyapis.identity_b2b.v1.OtpCode.Error otp_code = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder> 
            getOtpCodeFieldBuilder() {
          if (otpCodeBuilder_ == null) {
            if (!(reasonCase_ == 3)) {
              reason_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.getDefaultInstance();
            }
            otpCodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.ErrorOrBuilder>(
                    (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.OtpCode.Error) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 3;
          onChanged();
          return otpCodeBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error)
      private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error();
      }

      public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ERROR(1),
      DATA(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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 2: return DATA;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int ERROR_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
     * @return The error.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error getError() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.ErrorOrBuilder getErrorOrBuilder() {
      if (typeCase_ == 1) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance();
    }

    public static final int DATA_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     * @return The data.
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
    }
    /**
     * <pre>
     * Токен пользователя
     * </pre>
     *
     * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder() {
      if (typeCase_ == 2) {
         return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
      }
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (typeCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (typeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_);
      }
      if (typeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse) obj;

      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 1:
          if (!getError()
              .equals(other.getError())) return false;
          break;
        case 2:
          if (!getData()
              .equals(other.getData())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (typeCase_) {
        case 1:
          hash = (37 * hash) + ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getError().hashCode();
          break;
        case 2:
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на запрос проверки кода двухфакторной авторизации и активация сессии для B2B
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (errorBuilder_ != null) {
          errorBuilder_.clear();
        }
        if (dataBuilder_ != null) {
          dataBuilder_.clear();
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
        if (typeCase_ == 1 &&
            errorBuilder_ != null) {
          result.type_ = errorBuilder_.build();
        }
        if (typeCase_ == 2 &&
            dataBuilder_ != null) {
          result.type_ = dataBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.getDefaultInstance()) return this;
        switch (other.getTypeCase()) {
          case ERROR: {
            mergeError(other.getError());
            break;
          }
          case DATA: {
            mergeData(other.getData());
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.ErrorOrBuilder> errorBuilder_;
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       * @return Whether the error field is set.
       */
      @java.lang.Override
      public boolean hasError() {
        return typeCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       * @return The error.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error getError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance();
        } else {
          if (typeCase_ == 1) {
            return errorBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.Builder builderForValue) {
        if (errorBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error value) {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 1) {
            errorBuilder_.mergeFrom(value);
          } else {
            errorBuilder_.setMessage(value);
          }
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
          errorBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.Builder getErrorBuilder() {
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.ErrorOrBuilder getErrorOrBuilder() {
        if ((typeCase_ == 1) && (errorBuilder_ != null)) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 1) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse.Error error = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.ErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          if (!(typeCase_ == 1)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.getDefaultInstance();
          }
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.ErrorOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse.Error) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 1;
        onChanged();
        return errorBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder> dataBuilder_;
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken getData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        } else {
          if (typeCase_ == 2) {
            return dataBuilder_.getMessage();
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder setData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder setData(
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder builderForValue) {
        if (dataBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder mergeData(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken value) {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2 &&
              type_ != ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance()) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.newBuilder((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_)
                .mergeFrom(value).buildPartial();
          } else {
            type_ = value;
          }
          onChanged();
        } else {
          if (typeCase_ == 2) {
            dataBuilder_.mergeFrom(value);
          } else {
            dataBuilder_.setMessage(value);
          }
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder getDataBuilder() {
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder getDataOrBuilder() {
        if ((typeCase_ == 2) && (dataBuilder_ != null)) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          if (typeCase_ == 2) {
            return (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_;
          }
          return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Токен пользователя
       * </pre>
       *
       * <code>.keyapis.identity_b2b.v1.UserToken data = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          if (!(typeCase_ == 2)) {
            type_ = ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.getDefaultInstance();
          }
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken.Builder, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserTokenOrBuilder>(
                  (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.UserToken) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 2;
        onChanged();
        return dataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.PostAuthorizationCheckCodeResponse)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PostAuthorizationCheckCodeResponse>
        PARSER = new com.google.protobuf.AbstractParser<PostAuthorizationCheckCodeResponse>() {
      @java.lang.Override
      public PostAuthorizationCheckCodeResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PostAuthorizationCheckCodeResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PostAuthorizationCheckCodeResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.PostAuthorizationCheckCodeResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface Data2faOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.identity_b2b.v1.Data2fa)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The actionId.
     */
    java.lang.String getActionId();
    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for actionId.
     */
    com.google.protobuf.ByteString
        getActionIdBytes();

    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    java.lang.String getCodeId();
    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    com.google.protobuf.ByteString
        getCodeIdBytes();

    /**
     * <pre>
     * Время в секундах, оставшееся до возможности отправки следующего кода
     * </pre>
     *
     * <code>int32 timeout = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The timeout.
     */
    int getTimeout();
  }
  /**
   * <pre>
   * Данные для двухфакторной аутентификации
   * </pre>
   *
   * Protobuf type {@code keyapis.identity_b2b.v1.Data2fa}
   */
  public static final class Data2fa extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.identity_b2b.v1.Data2fa)
      Data2faOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Data2fa.newBuilder() to construct.
    private Data2fa(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Data2fa() {
      sessionId_ = "";
      actionId_ = "";
      codeId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Data2fa();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Data2fa_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Data2fa_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.Builder.class);
    }

    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор сессии двухфакторной аутентификации
     * </pre>
     *
     * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACTION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object actionId_ = "";
    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The actionId.
     */
    @java.lang.Override
    public java.lang.String getActionId() {
      java.lang.Object ref = actionId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        actionId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор процесса двухфакторной аутентификации
     * </pre>
     *
     * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for actionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getActionIdBytes() {
      java.lang.Object ref = actionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        actionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CODE_ID_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object codeId_ = "";
    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The codeId.
     */
    @java.lang.Override
    public java.lang.String getCodeId() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        codeId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор кода двухфакторной авторизации
     * </pre>
     *
     * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for codeId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCodeIdBytes() {
      java.lang.Object ref = codeId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        codeId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMEOUT_FIELD_NUMBER = 4;
    private int timeout_ = 0;
    /**
     * <pre>
     * Время в секундах, оставшееся до возможности отправки следующего кода
     * </pre>
     *
     * <code>int32 timeout = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The timeout.
     */
    @java.lang.Override
    public int getTimeout() {
      return timeout_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, actionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, codeId_);
      }
      if (timeout_ != 0) {
        output.writeInt32(4, timeout_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, actionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codeId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, codeId_);
      }
      if (timeout_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, timeout_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa)) {
        return super.equals(obj);
      }
      ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa other = (ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (!getActionId()
          .equals(other.getActionId())) return false;
      if (!getCodeId()
          .equals(other.getCodeId())) return false;
      if (getTimeout()
          != other.getTimeout()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + ACTION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getActionId().hashCode();
      hash = (37 * hash) + CODE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCodeId().hashCode();
      hash = (37 * hash) + TIMEOUT_FIELD_NUMBER;
      hash = (53 * hash) + getTimeout();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Данные для двухфакторной аутентификации
     * </pre>
     *
     * Protobuf type {@code keyapis.identity_b2b.v1.Data2fa}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.identity_b2b.v1.Data2fa)
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2faOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Data2fa_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Data2fa_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.class, ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.Builder.class);
      }

      // Construct using ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        actionId_ = "";
        codeId_ = "";
        timeout_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.internal_static_keyapis_identity_b2b_v1_Data2fa_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa getDefaultInstanceForType() {
        return ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa build() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa buildPartial() {
        ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa result = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.actionId_ = actionId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.codeId_ = codeId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.timeout_ = timeout_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa) {
          return mergeFrom((ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa other) {
        if (other == ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getActionId().isEmpty()) {
          actionId_ = other.actionId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getCodeId().isEmpty()) {
          codeId_ = other.codeId_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.getTimeout() != 0) {
          setTimeout(other.getTimeout());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                actionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                codeId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                timeout_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object sessionId_ = "";
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор сессии двухфакторной аутентификации
       * </pre>
       *
       * <code>string session_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object actionId_ = "";
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The actionId.
       */
      public java.lang.String getActionId() {
        java.lang.Object ref = actionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          actionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for actionId.
       */
      public com.google.protobuf.ByteString
          getActionIdBytes() {
        java.lang.Object ref = actionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          actionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The actionId to set.
       * @return This builder for chaining.
       */
      public Builder setActionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        actionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearActionId() {
        actionId_ = getDefaultInstance().getActionId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор процесса двухфакторной аутентификации
       * </pre>
       *
       * <code>string action_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for actionId to set.
       * @return This builder for chaining.
       */
      public Builder setActionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        actionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object codeId_ = "";
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The codeId.
       */
      public java.lang.String getCodeId() {
        java.lang.Object ref = codeId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          codeId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for codeId.
       */
      public com.google.protobuf.ByteString
          getCodeIdBytes() {
        java.lang.Object ref = codeId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          codeId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        codeId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCodeId() {
        codeId_ = getDefaultInstance().getCodeId();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор кода двухфакторной авторизации
       * </pre>
       *
       * <code>string code_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for codeId to set.
       * @return This builder for chaining.
       */
      public Builder setCodeIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        codeId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private int timeout_ ;
      /**
       * <pre>
       * Время в секундах, оставшееся до возможности отправки следующего кода
       * </pre>
       *
       * <code>int32 timeout = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The timeout.
       */
      @java.lang.Override
      public int getTimeout() {
        return timeout_;
      }
      /**
       * <pre>
       * Время в секундах, оставшееся до возможности отправки следующего кода
       * </pre>
       *
       * <code>int32 timeout = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The timeout to set.
       * @return This builder for chaining.
       */
      public Builder setTimeout(int value) {

        timeout_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Время в секундах, оставшееся до возможности отправки следующего кода
       * </pre>
       *
       * <code>int32 timeout = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeout() {
        bitField0_ = (bitField0_ & ~0x00000008);
        timeout_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.identity_b2b.v1.Data2fa)
    }

    // @@protoc_insertion_point(class_scope:keyapis.identity_b2b.v1.Data2fa)
    private static final ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa();
    }

    public static ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Data2fa>
        PARSER = new com.google.protobuf.AbstractParser<Data2fa>() {
      @java.lang.Override
      public Data2fa parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<Data2fa> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Data2fa> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.identity_b2b.v1.KeyapisIdentityB2bV1Proto.Data2fa getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_UserToken_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_UserToken_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_Captcha_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_Captcha_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_OtpCode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_OtpCode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_SsoError_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_SsoError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_KeyError_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_KeyError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_identity_b2b_v1_Data2fa_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_identity_b2b_v1_Data2fa_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\nCkeyapis/identity_b2b/v1/keyapis_identi" +
      "ty_b2b_authorization_v1.proto\022\027keyapis.i" +
      "dentity_b2b.v1\032\034google/api/annotations.p" +
      "roto\032\037google/api/field_behavior.proto\032\037g" +
      "oogle/protobuf/timestamp.proto\"[\n\tUserTo" +
      "ken\022\031\n\014access_token\030\001 \001(\tB\003\340A\002\0223\n\nexpire" +
      "d_at\030\002 \001(\0132\032.google.protobuf.TimestampB\003" +
      "\340A\002\",\n\007Captcha\022\017\n\002id\030\001 \001(\tB\003\340A\002\022\020\n\003url\030\002" +
      " \001(\tB\003\340A\002\"\333\001\n\rCaptchaAnswer\022\017\n\002id\030\001 \001(\tB" +
      "\003\340A\002\022\021\n\004code\030\002 \001(\tB\003\340A\002\032\245\001\n\005Error\0221\n\007cap" +
      "tcha\030\001 \001(\0132 .keyapis.identity_b2b.v1.Cap" +
      "tcha\022P\n\014wrong_answer\030\002 \001(\01328.keyapis.ide" +
      "ntity_b2b.v1.CaptchaAnswer.Error.WrongAn" +
      "swerH\000\032\r\n\013WrongAnswerB\010\n\006reason\"\314\003\n\007OtpC" +
      "ode\022\024\n\007code_id\030\001 \001(\tB\003\340A\002\022\024\n\007timeout\030\002 \001" +
      "(\005B\003\340A\002\032\224\003\n\005Error\022S\n\021life_time_expired\030\001" +
      " \001(\01326.keyapis.identity_b2b.v1.OtpCode.E" +
      "rror.LifeTimeExpiredH\000\022H\n\013no_attempts\030\002 " +
      "\001(\01321.keyapis.identity_b2b.v1.OtpCode.Er" +
      "ror.NoAttemptsH\000\022S\n\021address_not_found\030\003 " +
      "\001(\01326.keyapis.identity_b2b.v1.OtpCode.Er" +
      "ror.AddressNotFoundH\000\022J\n\014invalid_code\030\004 " +
      "\001(\01322.keyapis.identity_b2b.v1.OtpCode.Er" +
      "ror.InvalidCodeH\000\032\021\n\017LifeTimeExpired\032\014\n\n" +
      "NoAttempts\032\021\n\017AddressNotFound\032\r\n\013Invalid" +
      "CodeB\010\n\006reason\"\306\004\n\010SsoError\022]\n\031user_is_t" +
      "emporary_blocked\030\001 \001(\01328.keyapis.identit" +
      "y_b2b.v1.SsoError.UserIsTemporaryBlocked" +
      "H\000\022H\n\016user_not_found\030\002 \001(\0132..keyapis.ide" +
      "ntity_b2b.v1.SsoError.UserNotFoundH\000\022O\n\021" +
      "wrong_credentials\030\003 \001(\01322.keyapis.identi" +
      "ty_b2b.v1.SsoError.WrongCredentialsH\000\022J\n" +
      "\017user_is_blocked\030\004 \001(\0132/.keyapis.identit" +
      "y_b2b.v1.SsoError.UserIsBlockedH\000\022O\n\021int" +
      "erval_exceeded\030\005 \001(\01322.keyapis.identity_" +
      "b2b.v1.SsoError.IntervalExceededH\000\032\030\n\026Us" +
      "erIsTemporaryBlocked\032\016\n\014UserNotFound\032J\n\020" +
      "WrongCredentials\0226\n\007captcha\030\001 \001(\0132 .keya" +
      "pis.identity_b2b.v1.CaptchaB\003\340A\001\032\017\n\rUser" +
      "IsBlocked\032\022\n\020IntervalExceededB\010\n\006reason\"" +
      "m\n\010KeyError\022G\n\ruser_creation\030\001 \001(\0132..key" +
      "apis.identity_b2b.v1.KeyError.UserCreati" +
      "onH\000\032\016\n\014UserCreationB\010\n\006reason\"\227\001\n PostA" +
      "uthorizationSendCodeRequest\022>\n\016captcha_a" +
      "nswer\030\001 \001(\0132&.keyapis.identity_b2b.v1.Ca" +
      "ptchaAnswer\022\026\n\014phone_number\030\002 \001(\tH\000\022\017\n\005e" +
      "mail\030\003 \001(\tH\000B\n\n\010otp_text\"\276\002\n!PostAuthori" +
      "zationSendCodeResponse\022Q\n\005error\030\001 \001(\0132@." +
      "keyapis.identity_b2b.v1.PostAuthorizatio" +
      "nSendCodeResponse.ErrorH\000\0220\n\004data\030\002 \001(\0132" +
      " .keyapis.identity_b2b.v1.OtpCodeH\000\032\213\001\n\005" +
      "Error\022F\n\016captcha_answer\030\001 \001(\0132,.keyapis." +
      "identity_b2b.v1.CaptchaAnswer.ErrorH\000\0220\n" +
      "\003sso\030\002 \001(\0132!.keyapis.identity_b2b.v1.Sso" +
      "ErrorH\000B\010\n\006reasonB\006\n\004type\"H\n\035PostAuthori" +
      "zationLoginRequest\022\024\n\007code_id\030\001 \001(\tB\003\340A\002" +
      "\022\021\n\004code\030\002 \001(\tB\003\340A\002\"\340\002\n\036PostAuthorizatio" +
      "nLoginResponse\022N\n\005error\030\001 \001(\0132=.keyapis." +
      "identity_b2b.v1.PostAuthorizationLoginRe" +
      "sponse.ErrorH\000\0222\n\004data\030\002 \001(\0132\".keyapis.i" +
      "dentity_b2b.v1.UserTokenH\000\032\261\001\n\005Error\022:\n\010" +
      "otp_code\030\001 \001(\0132&.keyapis.identity_b2b.v1" +
      ".OtpCode.ErrorH\000\0220\n\003sso\030\002 \001(\0132!.keyapis." +
      "identity_b2b.v1.SsoErrorH\000\0220\n\003key\030\003 \001(\0132" +
      "!.keyapis.identity_b2b.v1.KeyErrorH\000B\010\n\006" +
      "reasonB\006\n\004type\"\307\001\n\'PostAuthorizationLogi" +
      "nByPasswordRequest\022\025\n\010password\030\001 \001(\tB\003\340A" +
      "\002\022C\n\016captcha_answer\030\002 \001(\0132&.keyapis.iden" +
      "tity_b2b.v1.CaptchaAnswerB\003\340A\001\022\026\n\014phone_" +
      "number\030\003 \001(\tH\000\022\017\n\005email\030\004 \001(\tH\000\022\017\n\005login" +
      "\030\005 \001(\tH\000B\006\n\004type\"\361\003\n(PostAuthorizationLo" +
      "ginByPasswordResponse\022X\n\005error\030\001 \001(\0132G.k" +
      "eyapis.identity_b2b.v1.PostAuthorization" +
      "LoginByPasswordResponse.ErrorH\000\0222\n\004data\030" +
      "\002 \001(\0132\".keyapis.identity_b2b.v1.UserToke" +
      "nH\000\0223\n\007data2fa\030\003 \001(\0132 .keyapis.identity_" +
      "b2b.v1.Data2faH\000\032\371\001\n\005Error\022F\n\016captcha_an" +
      "swer\030\001 \001(\0132,.keyapis.identity_b2b.v1.Cap" +
      "tchaAnswer.ErrorH\000\0220\n\003sso\030\002 \001(\0132!.keyapi" +
      "s.identity_b2b.v1.SsoErrorH\000\0220\n\003key\030\003 \001(" +
      "\0132!.keyapis.identity_b2b.v1.KeyErrorH\000\022:" +
      "\n\010otp_code\030\004 \001(\0132&.keyapis.identity_b2b." +
      "v1.OtpCode.ErrorH\000B\010\n\006reasonB\006\n\004type\"}\n!" +
      "PostAuthorizationCheckCodeRequest\022\027\n\nses" +
      "sion_id\030\001 \001(\tB\003\340A\002\022\026\n\taction_id\030\002 \001(\tB\003\340" +
      "A\002\022\024\n\007code_id\030\003 \001(\tB\003\340A\002\022\021\n\004code\030\004 \001(\tB\003" +
      "\340A\002\"\350\002\n\"PostAuthorizationCheckCodeRespon" +
      "se\022R\n\005error\030\001 \001(\0132A.keyapis.identity_b2b" +
      ".v1.PostAuthorizationCheckCodeResponse.E" +
      "rrorH\000\0222\n\004data\030\002 \001(\0132\".keyapis.identity_" +
      "b2b.v1.UserTokenH\000\032\261\001\n\005Error\0220\n\003sso\030\001 \001(" +
      "\0132!.keyapis.identity_b2b.v1.SsoErrorH\000\0220" +
      "\n\003key\030\002 \001(\0132!.keyapis.identity_b2b.v1.Ke" +
      "yErrorH\000\022:\n\010otp_code\030\003 \001(\0132&.keyapis.ide" +
      "ntity_b2b.v1.OtpCode.ErrorH\000B\010\n\006reasonB\006" +
      "\n\004type\"f\n\007Data2fa\022\027\n\nsession_id\030\001 \001(\tB\003\340" +
      "A\002\022\026\n\taction_id\030\002 \001(\tB\003\340A\002\022\024\n\007code_id\030\003 " +
      "\001(\tB\003\340A\002\022\024\n\007timeout\030\004 \001(\005B\003\340A\0022\345\006\n\027Autho" +
      "rizationB2bService\022\276\001\n\026PostAuthorization" +
      "Login\0226.keyapis.identity_b2b.v1.PostAuth" +
      "orizationLoginRequest\0327.keyapis.identity" +
      "_b2b.v1.PostAuthorizationLoginResponse\"3" +
      "\202\323\344\223\002-\"(/identity_b2b/api/v1/authorizati" +
      "on/login:\001*\022\313\001\n\031PostAuthorizationSendCod" +
      "e\0229.keyapis.identity_b2b.v1.PostAuthoriz" +
      "ationSendCodeRequest\032:.keyapis.identity_" +
      "b2b.v1.PostAuthorizationSendCodeResponse" +
      "\"7\202\323\344\223\0021\",/identity_b2b/api/v1/authoriza" +
      "tion/send_code:\001*\022\350\001\n PostAuthorizationL" +
      "oginByPassword\022@.keyapis.identity_b2b.v1" +
      ".PostAuthorizationLoginByPasswordRequest" +
      "\032A.keyapis.identity_b2b.v1.PostAuthoriza" +
      "tionLoginByPasswordResponse\"?\202\323\344\223\0029\"4/id" +
      "entity_b2b/api/v1/authorization/login_by" +
      "_password:\001*\022\317\001\n\032PostAuthorizationCheckC" +
      "ode\022:.keyapis.identity_b2b.v1.PostAuthor" +
      "izationCheckCodeRequest\032;.keyapis.identi" +
      "ty_b2b.v1.PostAuthorizationCheckCodeResp" +
      "onse\"8\202\323\344\223\0022\"-/identity_b2b/api/v1/autho" +
      "rization/check_code:\001*B\277\001\n\032ru.keyapis.id" +
      "entity_b2b.v1B\031KeyapisIdentityB2bV1Proto" +
      "H\003P\000Z\030/keyapis_identity_b2b_v1\330\001\001\370\001\001\242\002\024K" +
      "EYAPISIDENTITYB2BV1\252\002\026Keyapis.IdentityB2" +
      "b.V1\312\002\026Keyapis\\IdentityB2b\\V1\352\002\030Keyapis:" +
      ":IdentityB2b::V1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.api.AnnotationsProto.getDescriptor(),
          com.google.api.FieldBehaviorProto.getDescriptor(),
          com.google.protobuf.TimestampProto.getDescriptor(),
        });
    internal_static_keyapis_identity_b2b_v1_UserToken_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_UserToken_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_UserToken_descriptor,
        new java.lang.String[] { "AccessToken", "ExpiredAt", });
    internal_static_keyapis_identity_b2b_v1_Captcha_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_keyapis_identity_b2b_v1_Captcha_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_Captcha_descriptor,
        new java.lang.String[] { "Id", "Url", });
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_descriptor,
        new java.lang.String[] { "Id", "Code", });
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_descriptor =
      internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_descriptor,
        new java.lang.String[] { "Captcha", "WrongAnswer", "Reason", });
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_descriptor =
      internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_CaptchaAnswer_Error_WrongAnswer_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_OtpCode_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_keyapis_identity_b2b_v1_OtpCode_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_OtpCode_descriptor,
        new java.lang.String[] { "CodeId", "Timeout", });
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor =
      internal_static_keyapis_identity_b2b_v1_OtpCode_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor,
        new java.lang.String[] { "LifeTimeExpired", "NoAttempts", "AddressNotFound", "InvalidCode", "Reason", });
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_descriptor =
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_OtpCode_Error_LifeTimeExpired_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_descriptor =
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_OtpCode_Error_NoAttempts_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_descriptor =
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor.getNestedTypes().get(2);
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_OtpCode_Error_AddressNotFound_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_descriptor =
      internal_static_keyapis_identity_b2b_v1_OtpCode_Error_descriptor.getNestedTypes().get(3);
    internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_OtpCode_Error_InvalidCode_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_SsoError_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_keyapis_identity_b2b_v1_SsoError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_SsoError_descriptor,
        new java.lang.String[] { "UserIsTemporaryBlocked", "UserNotFound", "WrongCredentials", "UserIsBlocked", "IntervalExceeded", "Reason", });
    internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_descriptor =
      internal_static_keyapis_identity_b2b_v1_SsoError_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_SsoError_UserIsTemporaryBlocked_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_descriptor =
      internal_static_keyapis_identity_b2b_v1_SsoError_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_SsoError_UserNotFound_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_descriptor =
      internal_static_keyapis_identity_b2b_v1_SsoError_descriptor.getNestedTypes().get(2);
    internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_SsoError_WrongCredentials_descriptor,
        new java.lang.String[] { "Captcha", });
    internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_descriptor =
      internal_static_keyapis_identity_b2b_v1_SsoError_descriptor.getNestedTypes().get(3);
    internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_SsoError_UserIsBlocked_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_descriptor =
      internal_static_keyapis_identity_b2b_v1_SsoError_descriptor.getNestedTypes().get(4);
    internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_SsoError_IntervalExceeded_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_KeyError_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_keyapis_identity_b2b_v1_KeyError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_KeyError_descriptor,
        new java.lang.String[] { "UserCreation", "Reason", });
    internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_descriptor =
      internal_static_keyapis_identity_b2b_v1_KeyError_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_KeyError_UserCreation_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeRequest_descriptor,
        new java.lang.String[] { "CaptchaAnswer", "PhoneNumber", "Email", "OtpText", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_descriptor,
        new java.lang.String[] { "Error", "Data", "Type", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_descriptor =
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationSendCodeResponse_Error_descriptor,
        new java.lang.String[] { "CaptchaAnswer", "Sso", "Reason", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginRequest_descriptor,
        new java.lang.String[] { "CodeId", "Code", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_descriptor,
        new java.lang.String[] { "Error", "Data", "Type", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_descriptor =
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginResponse_Error_descriptor,
        new java.lang.String[] { "OtpCode", "Sso", "Key", "Reason", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordRequest_descriptor,
        new java.lang.String[] { "Password", "CaptchaAnswer", "PhoneNumber", "Email", "Login", "Type", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_descriptor,
        new java.lang.String[] { "Error", "Data", "Data2Fa", "Type", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_descriptor =
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationLoginByPasswordResponse_Error_descriptor,
        new java.lang.String[] { "CaptchaAnswer", "Sso", "Key", "OtpCode", "Reason", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeRequest_descriptor,
        new java.lang.String[] { "SessionId", "ActionId", "CodeId", "Code", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_descriptor,
        new java.lang.String[] { "Error", "Data", "Type", });
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_descriptor =
      internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_PostAuthorizationCheckCodeResponse_Error_descriptor,
        new java.lang.String[] { "Sso", "Key", "OtpCode", "Reason", });
    internal_static_keyapis_identity_b2b_v1_Data2fa_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_keyapis_identity_b2b_v1_Data2fa_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_identity_b2b_v1_Data2fa_descriptor,
        new java.lang.String[] { "SessionId", "ActionId", "CodeId", "Timeout", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
    registry.add(com.google.api.AnnotationsProto.http);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    com.google.api.AnnotationsProto.getDescriptor();
    com.google.api.FieldBehaviorProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
