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

package ru.keyapis.subscription.v1;

public final class KeyapisSubscriptionV1Proto {
  private KeyapisSubscriptionV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface SubscriptionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.Subscription)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор.
     * Может быть явно задан при создании.
     * Тип: Guid
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <pre>
     * Идентификатор.
     * Может быть явно задан при создании.
     * Тип: Guid
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <pre>
     * ОРПОН.
     * Идентификатор дома
     * </pre>
     *
     * <code>int64 orpon = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The orpon.
     */
    long getOrpon();

    /**
     * <pre>
     * Номер квартиры
     * </pre>
     *
     * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The flatNumber.
     */
    java.lang.String getFlatNumber();
    /**
     * <pre>
     * Номер квартиры
     * </pre>
     *
     * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for flatNumber.
     */
    com.google.protobuf.ByteString
        getFlatNumberBytes();

    /**
     * <pre>
     * Идентификатор коммерческой возможности(КВ).
     * Заполняется сервером на основе идентификатора из технологического плана(ТП)
     * </pre>
     *
     * <code>int32 offer_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The offerId.
     */
    int getOfferId();

    /**
     * <pre>
     * Cтатус подписки.
     * При создании может быть: SETUP, ACTIVE
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The enum numeric value on the wire for statusType.
     */
    int getStatusTypeValue();
    /**
     * <pre>
     * Cтатус подписки.
     * При создании может быть: SETUP, ACTIVE
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The statusType.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType getStatusType();

    /**
     * <pre>
     * Предыдущий статус подписки.
     * В справочник входят только финальные статусы.
     * Заполняется сервером при изменении статусов
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The enum numeric value on the wire for previousStatusType.
     */
    int getPreviousStatusTypeValue();
    /**
     * <pre>
     * Предыдущий статус подписки.
     * В справочник входят только финальные статусы.
     * Заполняется сервером при изменении статусов
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The previousStatusType.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType getPreviousStatusType();

    /**
     * <pre>
     * Цена
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue price = 7;</code>
     * @return Whether the price field is set.
     */
    boolean hasPrice();
    /**
     * <pre>
     * Цена
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue price = 7;</code>
     * @return The price.
     */
    com.google.protobuf.DoubleValue getPrice();

    /**
     * <pre>
     * Дата создания записи.
     * Заполняется сервером
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the createdAt field is set.
     */
    boolean hasCreatedAt();
    /**
     * <pre>
     * Дата создания записи.
     * Заполняется сервером
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The createdAt.
     */
    com.google.protobuf.Timestamp getCreatedAt();

    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the changedAt field is set.
     */
    boolean hasChangedAt();
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The changedAt.
     */
    com.google.protobuf.Timestamp getChangedAt();

    /**
     * <pre>
     * Признак для определения автоподписок.
     * Редактировать флаг запрещено.
     * Проставляется сервером в true при создании через задачу на автоподписку
     * </pre>
     *
     * <code>bool is_enable_auto_subscribe = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The isEnableAutoSubscribe.
     */
    boolean getIsEnableAutoSubscribe();

    /**
     * <pre>
     * Тип биллинга
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
     * @return The enum numeric value on the wire for billingType.
     */
    int getBillingTypeValue();
    /**
     * <pre>
     * Тип биллинга
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
     * @return The billingType.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType getBillingType();

    /**
     * <pre>
     * Срок действия.
     * Проставляется при создании
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 12;</code>
     * @return Whether the expiredAt field is set.
     */
    boolean hasExpiredAt();
    /**
     * <pre>
     * Срок действия.
     * Проставляется при создании
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 12;</code>
     * @return The expiredAt.
     */
    com.google.protobuf.Timestamp getExpiredAt();

    /**
     * <pre>
     * Идентификатор подписки, в зависимости от которой подключена данная.
     * Заполняется в подписках на опции.
     * Тип: Guid
     * </pre>
     *
     * <code>.google.protobuf.StringValue parent_id = 13;</code>
     * @return Whether the parentId field is set.
     */
    boolean hasParentId();
    /**
     * <pre>
     * Идентификатор подписки, в зависимости от которой подключена данная.
     * Заполняется в подписках на опции.
     * Тип: Guid
     * </pre>
     *
     * <code>.google.protobuf.StringValue parent_id = 13;</code>
     * @return The parentId.
     */
    com.google.protobuf.StringValue getParentId();

    /**
     * <pre>
     * Аккаунт
     * </pre>
     *
     * <code>.google.protobuf.Int64Value account = 14;</code>
     * @return Whether the account field is set.
     */
    boolean hasAccount();
    /**
     * <pre>
     * Аккаунт
     * </pre>
     *
     * <code>.google.protobuf.Int64Value account = 14;</code>
     * @return The account.
     */
    com.google.protobuf.Int64Value getAccount();

    /**
     * <pre>
     * Снапшот состояния коммерческой возможности на момент создания подписки.
     * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
     * @return Whether the offer field is set.
     */
    boolean hasOffer();
    /**
     * <pre>
     * Снапшот состояния коммерческой возможности на момент создания подписки.
     * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
     * @return The offer.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer getOffer();

    /**
     * <pre>
     * Цена по скидки.
     * Заполнена если оплата подписки прошла по скидке, иначе очищается
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
     * @return Whether the discountPrice field is set.
     */
    boolean hasDiscountPrice();
    /**
     * <pre>
     * Цена по скидки.
     * Заполнена если оплата подписки прошла по скидке, иначе очищается
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
     * @return The discountPrice.
     */
    com.google.protobuf.DoubleValue getDiscountPrice();
  }
  /**
   * <pre>
   * Подписка
   * </pre>
   *
   * Protobuf type {@code keyapis.subscription.v1.Subscription}
   */
  public  static final class Subscription extends
      com.google.protobuf.GeneratedMessageLite<
          Subscription, Subscription.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.Subscription)
      SubscriptionOrBuilder {
    private Subscription() {
      id_ = "";
      flatNumber_ = "";
    }
    /**
     * <pre>
     * Типы статусов подписки
     * </pre>
     *
     * Protobuf enum {@code keyapis.subscription.v1.Subscription.StatusType}
     */
    public enum StatusType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>STATUS_TYPE_UNKNOWN = 0;</code>
       */
      STATUS_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * Настроена.
       * Подписка переведена в статус настройки.
       * Это промо-период, либо монтажник проверяет работу оборудования.
       * Услуги подписки не оплачены, но доступны для использования.
       * Финальный статус
       * </pre>
       *
       * <code>SETUP = 1;</code>
       */
      SETUP(1),
      /**
       * <pre>
       * Активна.
       * Подписка активирована.
       * С этого момента считаем что нужно считать денежки.
       * Услуги подписки оплачены и доступны для использования.
       * Финальный статус
       * </pre>
       *
       * <code>ACTIVE = 2;</code>
       */
      ACTIVE(2),
      /**
       * <pre>
       * Заблокирована.
       * Подписка фин. заблокирована.
       * Подписка в фин. блокировке.
       * Услуги подписки не оплачены и не доступны.
       * Финальный статус
       * </pre>
       *
       * <code>BLOCKED = 3;</code>
       */
      BLOCKED(3),
      /**
       * <pre>
       * Отменена.
       * Подписка отменена.
       * Пользователь отменил подписку.
       * Услуги подписки больше не существуют и не доступны абоненту
       * </pre>
       *
       * <code>CANCELED = 4;</code>
       */
      CANCELED(4),
      /**
       * <pre>
       * Запланированная отмена.
       * Пользователь решил отказаться от услуги, но уже заплатил.
       * Подписка запланирована к отмене, будет действовать до истечения срока действия в подписке.
       * Услуги подписки оплачены и доступны для использования.
       * Финальный статус
       * </pre>
       *
       * <code>SCHEDULED_CANCELED = 5;</code>
       */
      SCHEDULED_CANCELED(5),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>STATUS_TYPE_UNKNOWN = 0;</code>
       */
      public static final int STATUS_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * Настроена.
       * Подписка переведена в статус настройки.
       * Это промо-период, либо монтажник проверяет работу оборудования.
       * Услуги подписки не оплачены, но доступны для использования.
       * Финальный статус
       * </pre>
       *
       * <code>SETUP = 1;</code>
       */
      public static final int SETUP_VALUE = 1;
      /**
       * <pre>
       * Активна.
       * Подписка активирована.
       * С этого момента считаем что нужно считать денежки.
       * Услуги подписки оплачены и доступны для использования.
       * Финальный статус
       * </pre>
       *
       * <code>ACTIVE = 2;</code>
       */
      public static final int ACTIVE_VALUE = 2;
      /**
       * <pre>
       * Заблокирована.
       * Подписка фин. заблокирована.
       * Подписка в фин. блокировке.
       * Услуги подписки не оплачены и не доступны.
       * Финальный статус
       * </pre>
       *
       * <code>BLOCKED = 3;</code>
       */
      public static final int BLOCKED_VALUE = 3;
      /**
       * <pre>
       * Отменена.
       * Подписка отменена.
       * Пользователь отменил подписку.
       * Услуги подписки больше не существуют и не доступны абоненту
       * </pre>
       *
       * <code>CANCELED = 4;</code>
       */
      public static final int CANCELED_VALUE = 4;
      /**
       * <pre>
       * Запланированная отмена.
       * Пользователь решил отказаться от услуги, но уже заплатил.
       * Подписка запланирована к отмене, будет действовать до истечения срока действия в подписке.
       * Услуги подписки оплачены и доступны для использования.
       * Финальный статус
       * </pre>
       *
       * <code>SCHEDULED_CANCELED = 5;</code>
       */
      public static final int SCHEDULED_CANCELED_VALUE = 5;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return 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 StatusType valueOf(int value) {
        return forNumber(value);
      }

      public static StatusType forNumber(int value) {
        switch (value) {
          case 0: return STATUS_TYPE_UNKNOWN;
          case 1: return SETUP;
          case 2: return ACTIVE;
          case 3: return BLOCKED;
          case 4: return CANCELED;
          case 5: return SCHEDULED_CANCELED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<StatusType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          StatusType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<StatusType>() {
              @java.lang.Override
              public StatusType findValueByNumber(int number) {
                return StatusType.forNumber(number);
              }
            };

      public static com.google.protobuf.Internal.EnumVerifier 
          internalGetVerifier() {
        return StatusTypeVerifier.INSTANCE;
      }

      private static final class StatusTypeVerifier implements 
           com.google.protobuf.Internal.EnumVerifier { 
              static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new StatusTypeVerifier();
              @java.lang.Override
              public boolean isInRange(int number) {
                return StatusType.forNumber(number) != null;
              }
            };

      private final int value;

      private StatusType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:keyapis.subscription.v1.Subscription.StatusType)
    }

    /**
     * <pre>
     * Типы биллинга подпискии
     * </pre>
     *
     * Protobuf enum {@code keyapis.subscription.v1.Subscription.BillingType}
     */
    public enum BillingType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>BILLING_TYPE_UNKNOWN = 0;</code>
       */
      BILLING_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * АСР МРФ.
       * Обслуживание счетов и расчёты с клиентами происходят в АСР МРФ
       * </pre>
       *
       * <code>ASR_MRF = 1;</code>
       */
      ASR_MRF(1),
      /**
       * <pre>
       * АСР Ключ.
       * Обслуживание счетов и расчёты с клиентами происходят внутри Ключа
       * </pre>
       *
       * <code>ASR_KEY = 2;</code>
       */
      ASR_KEY(2),
      /**
       * <pre>
       * АСР УК.
       * Обслуживание счетов и расчёты с клиентами происходят во внешнем АСР от управляющей компании
       * </pre>
       *
       * <code>ASR_MC = 3;</code>
       */
      ASR_MC(3),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>BILLING_TYPE_UNKNOWN = 0;</code>
       */
      public static final int BILLING_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * АСР МРФ.
       * Обслуживание счетов и расчёты с клиентами происходят в АСР МРФ
       * </pre>
       *
       * <code>ASR_MRF = 1;</code>
       */
      public static final int ASR_MRF_VALUE = 1;
      /**
       * <pre>
       * АСР Ключ.
       * Обслуживание счетов и расчёты с клиентами происходят внутри Ключа
       * </pre>
       *
       * <code>ASR_KEY = 2;</code>
       */
      public static final int ASR_KEY_VALUE = 2;
      /**
       * <pre>
       * АСР УК.
       * Обслуживание счетов и расчёты с клиентами происходят во внешнем АСР от управляющей компании
       * </pre>
       *
       * <code>ASR_MC = 3;</code>
       */
      public static final int ASR_MC_VALUE = 3;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return 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 BillingType valueOf(int value) {
        return forNumber(value);
      }

      public static BillingType forNumber(int value) {
        switch (value) {
          case 0: return BILLING_TYPE_UNKNOWN;
          case 1: return ASR_MRF;
          case 2: return ASR_KEY;
          case 3: return ASR_MC;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<BillingType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          BillingType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<BillingType>() {
              @java.lang.Override
              public BillingType findValueByNumber(int number) {
                return BillingType.forNumber(number);
              }
            };

      public static com.google.protobuf.Internal.EnumVerifier 
          internalGetVerifier() {
        return BillingTypeVerifier.INSTANCE;
      }

      private static final class BillingTypeVerifier implements 
           com.google.protobuf.Internal.EnumVerifier { 
              static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new BillingTypeVerifier();
              @java.lang.Override
              public boolean isInRange(int number) {
                return BillingType.forNumber(number) != null;
              }
            };

      private final int value;

      private BillingType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:keyapis.subscription.v1.Subscription.BillingType)
    }

    public static final int ID_FIELD_NUMBER = 1;
    private java.lang.String id_;
    /**
     * <pre>
     * Идентификатор.
     * Может быть явно задан при создании.
     * Тип: Guid
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор.
     * Может быть явно задан при создании.
     * Тип: Guid
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(id_);
    }
    /**
     * <pre>
     * Идентификатор.
     * Может быть явно задан при создании.
     * Тип: Guid
     * </pre>
     *
     * <code>string id = 1;</code>
     * @param value The id to set.
     */
    private void setId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор.
     * Может быть явно задан при создании.
     * Тип: Guid
     * </pre>
     *
     * <code>string id = 1;</code>
     */
    private void clearId() {

      id_ = getDefaultInstance().getId();
    }
    /**
     * <pre>
     * Идентификатор.
     * Может быть явно задан при создании.
     * Тип: Guid
     * </pre>
     *
     * <code>string id = 1;</code>
     * @param value The bytes for id to set.
     */
    private void setIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      id_ = value.toStringUtf8();

    }

    public static final int ORPON_FIELD_NUMBER = 2;
    private long orpon_;
    /**
     * <pre>
     * ОРПОН.
     * Идентификатор дома
     * </pre>
     *
     * <code>int64 orpon = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The orpon.
     */
    @java.lang.Override
    public long getOrpon() {
      return orpon_;
    }
    /**
     * <pre>
     * ОРПОН.
     * Идентификатор дома
     * </pre>
     *
     * <code>int64 orpon = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The orpon to set.
     */
    private void setOrpon(long value) {
      
      orpon_ = value;
    }
    /**
     * <pre>
     * ОРПОН.
     * Идентификатор дома
     * </pre>
     *
     * <code>int64 orpon = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearOrpon() {

      orpon_ = 0L;
    }

    public static final int FLAT_NUMBER_FIELD_NUMBER = 3;
    private java.lang.String flatNumber_;
    /**
     * <pre>
     * Номер квартиры
     * </pre>
     *
     * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The flatNumber.
     */
    @java.lang.Override
    public java.lang.String getFlatNumber() {
      return flatNumber_;
    }
    /**
     * <pre>
     * Номер квартиры
     * </pre>
     *
     * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for flatNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFlatNumberBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(flatNumber_);
    }
    /**
     * <pre>
     * Номер квартиры
     * </pre>
     *
     * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The flatNumber to set.
     */
    private void setFlatNumber(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      flatNumber_ = value;
    }
    /**
     * <pre>
     * Номер квартиры
     * </pre>
     *
     * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearFlatNumber() {

      flatNumber_ = getDefaultInstance().getFlatNumber();
    }
    /**
     * <pre>
     * Номер квартиры
     * </pre>
     *
     * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for flatNumber to set.
     */
    private void setFlatNumberBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      flatNumber_ = value.toStringUtf8();

    }

    public static final int OFFER_ID_FIELD_NUMBER = 4;
    private int offerId_;
    /**
     * <pre>
     * Идентификатор коммерческой возможности(КВ).
     * Заполняется сервером на основе идентификатора из технологического плана(ТП)
     * </pre>
     *
     * <code>int32 offer_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The offerId.
     */
    @java.lang.Override
    public int getOfferId() {
      return offerId_;
    }
    /**
     * <pre>
     * Идентификатор коммерческой возможности(КВ).
     * Заполняется сервером на основе идентификатора из технологического плана(ТП)
     * </pre>
     *
     * <code>int32 offer_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The offerId to set.
     */
    private void setOfferId(int value) {
      
      offerId_ = value;
    }
    /**
     * <pre>
     * Идентификатор коммерческой возможности(КВ).
     * Заполняется сервером на основе идентификатора из технологического плана(ТП)
     * </pre>
     *
     * <code>int32 offer_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void clearOfferId() {

      offerId_ = 0;
    }

    public static final int STATUS_TYPE_FIELD_NUMBER = 5;
    private int statusType_;
    /**
     * <pre>
     * Cтатус подписки.
     * При создании может быть: SETUP, ACTIVE
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The enum numeric value on the wire for statusType.
     */
    @java.lang.Override
    public int getStatusTypeValue() {
      return statusType_;
    }
    /**
     * <pre>
     * Cтатус подписки.
     * При создании может быть: SETUP, ACTIVE
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The statusType.
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType getStatusType() {
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType result = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType.forNumber(statusType_);
      return result == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Cтатус подписки.
     * При создании может быть: SETUP, ACTIVE
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The enum numeric value on the wire for statusType to set.
     */
    private void setStatusTypeValue(int value) {
        statusType_ = value;
    }
    /**
     * <pre>
     * Cтатус подписки.
     * При создании может быть: SETUP, ACTIVE
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The statusType to set.
     */
    private void setStatusType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType value) {
      statusType_ = value.getNumber();

    }
    /**
     * <pre>
     * Cтатус подписки.
     * При создании может быть: SETUP, ACTIVE
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearStatusType() {

      statusType_ = 0;
    }

    public static final int PREVIOUS_STATUS_TYPE_FIELD_NUMBER = 6;
    private int previousStatusType_;
    /**
     * <pre>
     * Предыдущий статус подписки.
     * В справочник входят только финальные статусы.
     * Заполняется сервером при изменении статусов
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The enum numeric value on the wire for previousStatusType.
     */
    @java.lang.Override
    public int getPreviousStatusTypeValue() {
      return previousStatusType_;
    }
    /**
     * <pre>
     * Предыдущий статус подписки.
     * В справочник входят только финальные статусы.
     * Заполняется сервером при изменении статусов
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The previousStatusType.
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType getPreviousStatusType() {
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType result = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType.forNumber(previousStatusType_);
      return result == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Предыдущий статус подписки.
     * В справочник входят только финальные статусы.
     * Заполняется сервером при изменении статусов
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The enum numeric value on the wire for previousStatusType to set.
     */
    private void setPreviousStatusTypeValue(int value) {
        previousStatusType_ = value;
    }
    /**
     * <pre>
     * Предыдущий статус подписки.
     * В справочник входят только финальные статусы.
     * Заполняется сервером при изменении статусов
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The previousStatusType to set.
     */
    private void setPreviousStatusType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType value) {
      previousStatusType_ = value.getNumber();

    }
    /**
     * <pre>
     * Предыдущий статус подписки.
     * В справочник входят только финальные статусы.
     * Заполняется сервером при изменении статусов
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void clearPreviousStatusType() {

      previousStatusType_ = 0;
    }

    public static final int PRICE_FIELD_NUMBER = 7;
    private com.google.protobuf.DoubleValue price_;
    /**
     * <pre>
     * Цена
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue price = 7;</code>
     */
    @java.lang.Override
    public boolean hasPrice() {
      return price_ != null;
    }
    /**
     * <pre>
     * Цена
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue price = 7;</code>
     */
    @java.lang.Override
    public com.google.protobuf.DoubleValue getPrice() {
      return price_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : price_;
    }
    /**
     * <pre>
     * Цена
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue price = 7;</code>
     */
    private void setPrice(com.google.protobuf.DoubleValue value) {
      value.getClass();
  price_ = value;

      }
    /**
     * <pre>
     * Цена
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue price = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePrice(com.google.protobuf.DoubleValue value) {
      value.getClass();
  if (price_ != null &&
          price_ != com.google.protobuf.DoubleValue.getDefaultInstance()) {
        price_ =
          com.google.protobuf.DoubleValue.newBuilder(price_).mergeFrom(value).buildPartial();
      } else {
        price_ = value;
      }

    }
    /**
     * <pre>
     * Цена
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue price = 7;</code>
     */
    private void clearPrice() {  price_ = null;

    }

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

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

    }
    /**
     * <pre>
     * Дата создания записи.
     * Заполняется сервером
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void clearCreatedAt() {  createdAt_ = null;

    }

    public static final int CHANGED_AT_FIELD_NUMBER = 9;
    private com.google.protobuf.Timestamp changedAt_;
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public boolean hasChangedAt() {
      return changedAt_ != null;
    }
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getChangedAt() {
      return changedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : changedAt_;
    }
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void setChangedAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  changedAt_ = value;

      }
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeChangedAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  if (changedAt_ != null &&
          changedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
        changedAt_ =
          com.google.protobuf.Timestamp.newBuilder(changedAt_).mergeFrom(value).buildPartial();
      } else {
        changedAt_ = value;
      }

    }
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void clearChangedAt() {  changedAt_ = null;

    }

    public static final int IS_ENABLE_AUTO_SUBSCRIBE_FIELD_NUMBER = 10;
    private boolean isEnableAutoSubscribe_;
    /**
     * <pre>
     * Признак для определения автоподписок.
     * Редактировать флаг запрещено.
     * Проставляется сервером в true при создании через задачу на автоподписку
     * </pre>
     *
     * <code>bool is_enable_auto_subscribe = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The isEnableAutoSubscribe.
     */
    @java.lang.Override
    public boolean getIsEnableAutoSubscribe() {
      return isEnableAutoSubscribe_;
    }
    /**
     * <pre>
     * Признак для определения автоподписок.
     * Редактировать флаг запрещено.
     * Проставляется сервером в true при создании через задачу на автоподписку
     * </pre>
     *
     * <code>bool is_enable_auto_subscribe = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The isEnableAutoSubscribe to set.
     */
    private void setIsEnableAutoSubscribe(boolean value) {
      
      isEnableAutoSubscribe_ = value;
    }
    /**
     * <pre>
     * Признак для определения автоподписок.
     * Редактировать флаг запрещено.
     * Проставляется сервером в true при создании через задачу на автоподписку
     * </pre>
     *
     * <code>bool is_enable_auto_subscribe = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void clearIsEnableAutoSubscribe() {

      isEnableAutoSubscribe_ = false;
    }

    public static final int BILLING_TYPE_FIELD_NUMBER = 11;
    private int billingType_;
    /**
     * <pre>
     * Тип биллинга
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
     * @return The enum numeric value on the wire for billingType.
     */
    @java.lang.Override
    public int getBillingTypeValue() {
      return billingType_;
    }
    /**
     * <pre>
     * Тип биллинга
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
     * @return The billingType.
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType getBillingType() {
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType result = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType.forNumber(billingType_);
      return result == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Тип биллинга
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
     * @param value The enum numeric value on the wire for billingType to set.
     */
    private void setBillingTypeValue(int value) {
        billingType_ = value;
    }
    /**
     * <pre>
     * Тип биллинга
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
     * @param value The billingType to set.
     */
    private void setBillingType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType value) {
      billingType_ = value.getNumber();

    }
    /**
     * <pre>
     * Тип биллинга
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
     */
    private void clearBillingType() {

      billingType_ = 0;
    }

    public static final int EXPIRED_AT_FIELD_NUMBER = 12;
    private com.google.protobuf.Timestamp expiredAt_;
    /**
     * <pre>
     * Срок действия.
     * Проставляется при создании
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 12;</code>
     */
    @java.lang.Override
    public boolean hasExpiredAt() {
      return expiredAt_ != null;
    }
    /**
     * <pre>
     * Срок действия.
     * Проставляется при создании
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 12;</code>
     */
    @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 = 12;</code>
     */
    private void setExpiredAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  expiredAt_ = value;

      }
    /**
     * <pre>
     * Срок действия.
     * Проставляется при создании
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 12;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeExpiredAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  if (expiredAt_ != null &&
          expiredAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
        expiredAt_ =
          com.google.protobuf.Timestamp.newBuilder(expiredAt_).mergeFrom(value).buildPartial();
      } else {
        expiredAt_ = value;
      }

    }
    /**
     * <pre>
     * Срок действия.
     * Проставляется при создании
     * </pre>
     *
     * <code>.google.protobuf.Timestamp expired_at = 12;</code>
     */
    private void clearExpiredAt() {  expiredAt_ = null;

    }

    public static final int PARENT_ID_FIELD_NUMBER = 13;
    private com.google.protobuf.StringValue parentId_;
    /**
     * <pre>
     * Идентификатор подписки, в зависимости от которой подключена данная.
     * Заполняется в подписках на опции.
     * Тип: Guid
     * </pre>
     *
     * <code>.google.protobuf.StringValue parent_id = 13;</code>
     */
    @java.lang.Override
    public boolean hasParentId() {
      return parentId_ != null;
    }
    /**
     * <pre>
     * Идентификатор подписки, в зависимости от которой подключена данная.
     * Заполняется в подписках на опции.
     * Тип: Guid
     * </pre>
     *
     * <code>.google.protobuf.StringValue parent_id = 13;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getParentId() {
      return parentId_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : parentId_;
    }
    /**
     * <pre>
     * Идентификатор подписки, в зависимости от которой подключена данная.
     * Заполняется в подписках на опции.
     * Тип: Guid
     * </pre>
     *
     * <code>.google.protobuf.StringValue parent_id = 13;</code>
     */
    private void setParentId(com.google.protobuf.StringValue value) {
      value.getClass();
  parentId_ = value;

      }
    /**
     * <pre>
     * Идентификатор подписки, в зависимости от которой подключена данная.
     * Заполняется в подписках на опции.
     * Тип: Guid
     * </pre>
     *
     * <code>.google.protobuf.StringValue parent_id = 13;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeParentId(com.google.protobuf.StringValue value) {
      value.getClass();
  if (parentId_ != null &&
          parentId_ != com.google.protobuf.StringValue.getDefaultInstance()) {
        parentId_ =
          com.google.protobuf.StringValue.newBuilder(parentId_).mergeFrom(value).buildPartial();
      } else {
        parentId_ = value;
      }

    }
    /**
     * <pre>
     * Идентификатор подписки, в зависимости от которой подключена данная.
     * Заполняется в подписках на опции.
     * Тип: Guid
     * </pre>
     *
     * <code>.google.protobuf.StringValue parent_id = 13;</code>
     */
    private void clearParentId() {  parentId_ = null;

    }

    public static final int ACCOUNT_FIELD_NUMBER = 14;
    private com.google.protobuf.Int64Value account_;
    /**
     * <pre>
     * Аккаунт
     * </pre>
     *
     * <code>.google.protobuf.Int64Value account = 14;</code>
     */
    @java.lang.Override
    public boolean hasAccount() {
      return account_ != null;
    }
    /**
     * <pre>
     * Аккаунт
     * </pre>
     *
     * <code>.google.protobuf.Int64Value account = 14;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Int64Value getAccount() {
      return account_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : account_;
    }
    /**
     * <pre>
     * Аккаунт
     * </pre>
     *
     * <code>.google.protobuf.Int64Value account = 14;</code>
     */
    private void setAccount(com.google.protobuf.Int64Value value) {
      value.getClass();
  account_ = value;

      }
    /**
     * <pre>
     * Аккаунт
     * </pre>
     *
     * <code>.google.protobuf.Int64Value account = 14;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAccount(com.google.protobuf.Int64Value value) {
      value.getClass();
  if (account_ != null &&
          account_ != com.google.protobuf.Int64Value.getDefaultInstance()) {
        account_ =
          com.google.protobuf.Int64Value.newBuilder(account_).mergeFrom(value).buildPartial();
      } else {
        account_ = value;
      }

    }
    /**
     * <pre>
     * Аккаунт
     * </pre>
     *
     * <code>.google.protobuf.Int64Value account = 14;</code>
     */
    private void clearAccount() {  account_ = null;

    }

    public static final int OFFER_FIELD_NUMBER = 15;
    private ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer offer_;
    /**
     * <pre>
     * Снапшот состояния коммерческой возможности на момент создания подписки.
     * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
     */
    @java.lang.Override
    public boolean hasOffer() {
      return offer_ != null;
    }
    /**
     * <pre>
     * Снапшот состояния коммерческой возможности на момент создания подписки.
     * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer getOffer() {
      return offer_ == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer.getDefaultInstance() : offer_;
    }
    /**
     * <pre>
     * Снапшот состояния коммерческой возможности на момент создания подписки.
     * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
     */
    private void setOffer(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer value) {
      value.getClass();
  offer_ = value;

      }
    /**
     * <pre>
     * Снапшот состояния коммерческой возможности на момент создания подписки.
     * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOffer(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer value) {
      value.getClass();
  if (offer_ != null &&
          offer_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer.getDefaultInstance()) {
        offer_ =
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer.newBuilder(offer_).mergeFrom(value).buildPartial();
      } else {
        offer_ = value;
      }

    }
    /**
     * <pre>
     * Снапшот состояния коммерческой возможности на момент создания подписки.
     * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
     */
    private void clearOffer() {  offer_ = null;

    }

    public static final int DISCOUNT_PRICE_FIELD_NUMBER = 16;
    private com.google.protobuf.DoubleValue discountPrice_;
    /**
     * <pre>
     * Цена по скидки.
     * Заполнена если оплата подписки прошла по скидке, иначе очищается
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
     */
    @java.lang.Override
    public boolean hasDiscountPrice() {
      return discountPrice_ != null;
    }
    /**
     * <pre>
     * Цена по скидки.
     * Заполнена если оплата подписки прошла по скидке, иначе очищается
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
     */
    @java.lang.Override
    public com.google.protobuf.DoubleValue getDiscountPrice() {
      return discountPrice_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : discountPrice_;
    }
    /**
     * <pre>
     * Цена по скидки.
     * Заполнена если оплата подписки прошла по скидке, иначе очищается
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
     */
    private void setDiscountPrice(com.google.protobuf.DoubleValue value) {
      value.getClass();
  discountPrice_ = value;

      }
    /**
     * <pre>
     * Цена по скидки.
     * Заполнена если оплата подписки прошла по скидке, иначе очищается
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDiscountPrice(com.google.protobuf.DoubleValue value) {
      value.getClass();
  if (discountPrice_ != null &&
          discountPrice_ != com.google.protobuf.DoubleValue.getDefaultInstance()) {
        discountPrice_ =
          com.google.protobuf.DoubleValue.newBuilder(discountPrice_).mergeFrom(value).buildPartial();
      } else {
        discountPrice_ = value;
      }

    }
    /**
     * <pre>
     * Цена по скидки.
     * Заполнена если оплата подписки прошла по скидке, иначе очищается
     * </pre>
     *
     * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
     */
    private void clearDiscountPrice() {  discountPrice_ = null;

    }

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * Protobuf type {@code keyapis.subscription.v1.Subscription}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.subscription.v1.Subscription)
        ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionOrBuilder {
      // Construct using ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор.
       * Может быть явно задан при создании.
       * Тип: Guid
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * Идентификатор.
       * Может быть явно задан при создании.
       * Тип: Guid
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        return instance.getIdBytes();
      }
      /**
       * <pre>
       * Идентификатор.
       * Может быть явно задан при создании.
       * Тип: Guid
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор.
       * Может быть явно задан при создании.
       * Тип: Guid
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор.
       * Может быть явно задан при создании.
       * Тип: Guid
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * ОРПОН.
       * Идентификатор дома
       * </pre>
       *
       * <code>int64 orpon = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The orpon.
       */
      @java.lang.Override
      public long getOrpon() {
        return instance.getOrpon();
      }
      /**
       * <pre>
       * ОРПОН.
       * Идентификатор дома
       * </pre>
       *
       * <code>int64 orpon = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The orpon to set.
       * @return This builder for chaining.
       */
      public Builder setOrpon(long value) {
        copyOnWrite();
        instance.setOrpon(value);
        return this;
      }
      /**
       * <pre>
       * ОРПОН.
       * Идентификатор дома
       * </pre>
       *
       * <code>int64 orpon = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearOrpon() {
        copyOnWrite();
        instance.clearOrpon();
        return this;
      }

      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The flatNumber.
       */
      @java.lang.Override
      public java.lang.String getFlatNumber() {
        return instance.getFlatNumber();
      }
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for flatNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFlatNumberBytes() {
        return instance.getFlatNumberBytes();
      }
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The flatNumber to set.
       * @return This builder for chaining.
       */
      public Builder setFlatNumber(
          java.lang.String value) {
        copyOnWrite();
        instance.setFlatNumber(value);
        return this;
      }
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearFlatNumber() {
        copyOnWrite();
        instance.clearFlatNumber();
        return this;
      }
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string flat_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for flatNumber to set.
       * @return This builder for chaining.
       */
      public Builder setFlatNumberBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setFlatNumberBytes(value);
        return this;
      }

      /**
       * <pre>
       * Идентификатор коммерческой возможности(КВ).
       * Заполняется сервером на основе идентификатора из технологического плана(ТП)
       * </pre>
       *
       * <code>int32 offer_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The offerId.
       */
      @java.lang.Override
      public int getOfferId() {
        return instance.getOfferId();
      }
      /**
       * <pre>
       * Идентификатор коммерческой возможности(КВ).
       * Заполняется сервером на основе идентификатора из технологического плана(ТП)
       * </pre>
       *
       * <code>int32 offer_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The offerId to set.
       * @return This builder for chaining.
       */
      public Builder setOfferId(int value) {
        copyOnWrite();
        instance.setOfferId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор коммерческой возможности(КВ).
       * Заполняется сервером на основе идентификатора из технологического плана(ТП)
       * </pre>
       *
       * <code>int32 offer_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearOfferId() {
        copyOnWrite();
        instance.clearOfferId();
        return this;
      }

      /**
       * <pre>
       * Cтатус подписки.
       * При создании может быть: SETUP, ACTIVE
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The enum numeric value on the wire for statusType.
       */
      @java.lang.Override
      public int getStatusTypeValue() {
        return instance.getStatusTypeValue();
      }
      /**
       * <pre>
       * Cтатус подписки.
       * При создании может быть: SETUP, ACTIVE
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The statusType to set.
       * @return This builder for chaining.
       */
      public Builder setStatusTypeValue(int value) {
        copyOnWrite();
        instance.setStatusTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * Cтатус подписки.
       * При создании может быть: SETUP, ACTIVE
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The statusType.
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType getStatusType() {
        return instance.getStatusType();
      }
      /**
       * <pre>
       * Cтатус подписки.
       * При создании может быть: SETUP, ACTIVE
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The enum numeric value on the wire for statusType to set.
       * @return This builder for chaining.
       */
      public Builder setStatusType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType value) {
        copyOnWrite();
        instance.setStatusType(value);
        return this;
      }
      /**
       * <pre>
       * Cтатус подписки.
       * При создании может быть: SETUP, ACTIVE
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType status_type = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearStatusType() {
        copyOnWrite();
        instance.clearStatusType();
        return this;
      }

      /**
       * <pre>
       * Предыдущий статус подписки.
       * В справочник входят только финальные статусы.
       * Заполняется сервером при изменении статусов
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The enum numeric value on the wire for previousStatusType.
       */
      @java.lang.Override
      public int getPreviousStatusTypeValue() {
        return instance.getPreviousStatusTypeValue();
      }
      /**
       * <pre>
       * Предыдущий статус подписки.
       * В справочник входят только финальные статусы.
       * Заполняется сервером при изменении статусов
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The previousStatusType to set.
       * @return This builder for chaining.
       */
      public Builder setPreviousStatusTypeValue(int value) {
        copyOnWrite();
        instance.setPreviousStatusTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * Предыдущий статус подписки.
       * В справочник входят только финальные статусы.
       * Заполняется сервером при изменении статусов
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The previousStatusType.
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType getPreviousStatusType() {
        return instance.getPreviousStatusType();
      }
      /**
       * <pre>
       * Предыдущий статус подписки.
       * В справочник входят только финальные статусы.
       * Заполняется сервером при изменении статусов
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The enum numeric value on the wire for previousStatusType to set.
       * @return This builder for chaining.
       */
      public Builder setPreviousStatusType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.StatusType value) {
        copyOnWrite();
        instance.setPreviousStatusType(value);
        return this;
      }
      /**
       * <pre>
       * Предыдущий статус подписки.
       * В справочник входят только финальные статусы.
       * Заполняется сервером при изменении статусов
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.StatusType previous_status_type = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearPreviousStatusType() {
        copyOnWrite();
        instance.clearPreviousStatusType();
        return this;
      }

      /**
       * <pre>
       * Цена
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue price = 7;</code>
       */
      @java.lang.Override
      public boolean hasPrice() {
        return instance.hasPrice();
      }
      /**
       * <pre>
       * Цена
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue price = 7;</code>
       */
      @java.lang.Override
      public com.google.protobuf.DoubleValue getPrice() {
        return instance.getPrice();
      }
      /**
       * <pre>
       * Цена
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue price = 7;</code>
       */
      public Builder setPrice(com.google.protobuf.DoubleValue value) {
        copyOnWrite();
        instance.setPrice(value);
        return this;
        }
      /**
       * <pre>
       * Цена
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue price = 7;</code>
       */
      public Builder setPrice(
          com.google.protobuf.DoubleValue.Builder builderForValue) {
        copyOnWrite();
        instance.setPrice(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Цена
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue price = 7;</code>
       */
      public Builder mergePrice(com.google.protobuf.DoubleValue value) {
        copyOnWrite();
        instance.mergePrice(value);
        return this;
      }
      /**
       * <pre>
       * Цена
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue price = 7;</code>
       */
      public Builder clearPrice() {  copyOnWrite();
        instance.clearPrice();
        return this;
      }

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

      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * Заполняется при создании и изменении.
       * Является версией объекта
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      @java.lang.Override
      public boolean hasChangedAt() {
        return instance.hasChangedAt();
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * Заполняется при создании и изменении.
       * Является версией объекта
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getChangedAt() {
        return instance.getChangedAt();
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * Заполняется при создании и изменении.
       * Является версией объекта
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder setChangedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.setChangedAt(value);
        return this;
        }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * Заполняется при создании и изменении.
       * Является версией объекта
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder setChangedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        copyOnWrite();
        instance.setChangedAt(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * Заполняется при создании и изменении.
       * Является версией объекта
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder mergeChangedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.mergeChangedAt(value);
        return this;
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * Заполняется при создании и изменении.
       * Является версией объекта
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder clearChangedAt() {  copyOnWrite();
        instance.clearChangedAt();
        return this;
      }

      /**
       * <pre>
       * Признак для определения автоподписок.
       * Редактировать флаг запрещено.
       * Проставляется сервером в true при создании через задачу на автоподписку
       * </pre>
       *
       * <code>bool is_enable_auto_subscribe = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The isEnableAutoSubscribe.
       */
      @java.lang.Override
      public boolean getIsEnableAutoSubscribe() {
        return instance.getIsEnableAutoSubscribe();
      }
      /**
       * <pre>
       * Признак для определения автоподписок.
       * Редактировать флаг запрещено.
       * Проставляется сервером в true при создании через задачу на автоподписку
       * </pre>
       *
       * <code>bool is_enable_auto_subscribe = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The isEnableAutoSubscribe to set.
       * @return This builder for chaining.
       */
      public Builder setIsEnableAutoSubscribe(boolean value) {
        copyOnWrite();
        instance.setIsEnableAutoSubscribe(value);
        return this;
      }
      /**
       * <pre>
       * Признак для определения автоподписок.
       * Редактировать флаг запрещено.
       * Проставляется сервером в true при создании через задачу на автоподписку
       * </pre>
       *
       * <code>bool is_enable_auto_subscribe = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearIsEnableAutoSubscribe() {
        copyOnWrite();
        instance.clearIsEnableAutoSubscribe();
        return this;
      }

      /**
       * <pre>
       * Тип биллинга
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
       * @return The enum numeric value on the wire for billingType.
       */
      @java.lang.Override
      public int getBillingTypeValue() {
        return instance.getBillingTypeValue();
      }
      /**
       * <pre>
       * Тип биллинга
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
       * @param value The billingType to set.
       * @return This builder for chaining.
       */
      public Builder setBillingTypeValue(int value) {
        copyOnWrite();
        instance.setBillingTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * Тип биллинга
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
       * @return The billingType.
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType getBillingType() {
        return instance.getBillingType();
      }
      /**
       * <pre>
       * Тип биллинга
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
       * @param value The enum numeric value on the wire for billingType to set.
       * @return This builder for chaining.
       */
      public Builder setBillingType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.BillingType value) {
        copyOnWrite();
        instance.setBillingType(value);
        return this;
      }
      /**
       * <pre>
       * Тип биллинга
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription.BillingType billing_type = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearBillingType() {
        copyOnWrite();
        instance.clearBillingType();
        return this;
      }

      /**
       * <pre>
       * Срок действия.
       * Проставляется при создании
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 12;</code>
       */
      @java.lang.Override
      public boolean hasExpiredAt() {
        return instance.hasExpiredAt();
      }
      /**
       * <pre>
       * Срок действия.
       * Проставляется при создании
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 12;</code>
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getExpiredAt() {
        return instance.getExpiredAt();
      }
      /**
       * <pre>
       * Срок действия.
       * Проставляется при создании
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 12;</code>
       */
      public Builder setExpiredAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.setExpiredAt(value);
        return this;
        }
      /**
       * <pre>
       * Срок действия.
       * Проставляется при создании
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 12;</code>
       */
      public Builder setExpiredAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        copyOnWrite();
        instance.setExpiredAt(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Срок действия.
       * Проставляется при создании
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 12;</code>
       */
      public Builder mergeExpiredAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.mergeExpiredAt(value);
        return this;
      }
      /**
       * <pre>
       * Срок действия.
       * Проставляется при создании
       * </pre>
       *
       * <code>.google.protobuf.Timestamp expired_at = 12;</code>
       */
      public Builder clearExpiredAt() {  copyOnWrite();
        instance.clearExpiredAt();
        return this;
      }

      /**
       * <pre>
       * Идентификатор подписки, в зависимости от которой подключена данная.
       * Заполняется в подписках на опции.
       * Тип: Guid
       * </pre>
       *
       * <code>.google.protobuf.StringValue parent_id = 13;</code>
       */
      @java.lang.Override
      public boolean hasParentId() {
        return instance.hasParentId();
      }
      /**
       * <pre>
       * Идентификатор подписки, в зависимости от которой подключена данная.
       * Заполняется в подписках на опции.
       * Тип: Guid
       * </pre>
       *
       * <code>.google.protobuf.StringValue parent_id = 13;</code>
       */
      @java.lang.Override
      public com.google.protobuf.StringValue getParentId() {
        return instance.getParentId();
      }
      /**
       * <pre>
       * Идентификатор подписки, в зависимости от которой подключена данная.
       * Заполняется в подписках на опции.
       * Тип: Guid
       * </pre>
       *
       * <code>.google.protobuf.StringValue parent_id = 13;</code>
       */
      public Builder setParentId(com.google.protobuf.StringValue value) {
        copyOnWrite();
        instance.setParentId(value);
        return this;
        }
      /**
       * <pre>
       * Идентификатор подписки, в зависимости от которой подключена данная.
       * Заполняется в подписках на опции.
       * Тип: Guid
       * </pre>
       *
       * <code>.google.protobuf.StringValue parent_id = 13;</code>
       */
      public Builder setParentId(
          com.google.protobuf.StringValue.Builder builderForValue) {
        copyOnWrite();
        instance.setParentId(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Идентификатор подписки, в зависимости от которой подключена данная.
       * Заполняется в подписках на опции.
       * Тип: Guid
       * </pre>
       *
       * <code>.google.protobuf.StringValue parent_id = 13;</code>
       */
      public Builder mergeParentId(com.google.protobuf.StringValue value) {
        copyOnWrite();
        instance.mergeParentId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор подписки, в зависимости от которой подключена данная.
       * Заполняется в подписках на опции.
       * Тип: Guid
       * </pre>
       *
       * <code>.google.protobuf.StringValue parent_id = 13;</code>
       */
      public Builder clearParentId() {  copyOnWrite();
        instance.clearParentId();
        return this;
      }

      /**
       * <pre>
       * Аккаунт
       * </pre>
       *
       * <code>.google.protobuf.Int64Value account = 14;</code>
       */
      @java.lang.Override
      public boolean hasAccount() {
        return instance.hasAccount();
      }
      /**
       * <pre>
       * Аккаунт
       * </pre>
       *
       * <code>.google.protobuf.Int64Value account = 14;</code>
       */
      @java.lang.Override
      public com.google.protobuf.Int64Value getAccount() {
        return instance.getAccount();
      }
      /**
       * <pre>
       * Аккаунт
       * </pre>
       *
       * <code>.google.protobuf.Int64Value account = 14;</code>
       */
      public Builder setAccount(com.google.protobuf.Int64Value value) {
        copyOnWrite();
        instance.setAccount(value);
        return this;
        }
      /**
       * <pre>
       * Аккаунт
       * </pre>
       *
       * <code>.google.protobuf.Int64Value account = 14;</code>
       */
      public Builder setAccount(
          com.google.protobuf.Int64Value.Builder builderForValue) {
        copyOnWrite();
        instance.setAccount(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Аккаунт
       * </pre>
       *
       * <code>.google.protobuf.Int64Value account = 14;</code>
       */
      public Builder mergeAccount(com.google.protobuf.Int64Value value) {
        copyOnWrite();
        instance.mergeAccount(value);
        return this;
      }
      /**
       * <pre>
       * Аккаунт
       * </pre>
       *
       * <code>.google.protobuf.Int64Value account = 14;</code>
       */
      public Builder clearAccount() {  copyOnWrite();
        instance.clearAccount();
        return this;
      }

      /**
       * <pre>
       * Снапшот состояния коммерческой возможности на момент создания подписки.
       * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
       */
      @java.lang.Override
      public boolean hasOffer() {
        return instance.hasOffer();
      }
      /**
       * <pre>
       * Снапшот состояния коммерческой возможности на момент создания подписки.
       * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer getOffer() {
        return instance.getOffer();
      }
      /**
       * <pre>
       * Снапшот состояния коммерческой возможности на момент создания подписки.
       * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
       */
      public Builder setOffer(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer value) {
        copyOnWrite();
        instance.setOffer(value);
        return this;
        }
      /**
       * <pre>
       * Снапшот состояния коммерческой возможности на момент создания подписки.
       * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
       */
      public Builder setOffer(
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer.Builder builderForValue) {
        copyOnWrite();
        instance.setOffer(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Снапшот состояния коммерческой возможности на момент создания подписки.
       * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
       */
      public Builder mergeOffer(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Offer value) {
        copyOnWrite();
        instance.mergeOffer(value);
        return this;
      }
      /**
       * <pre>
       * Снапшот состояния коммерческой возможности на момент создания подписки.
       * В данный момент это ссылка в базе на запись, в будущем это будет снапшот
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Offer offer = 15;</code>
       */
      public Builder clearOffer() {  copyOnWrite();
        instance.clearOffer();
        return this;
      }

      /**
       * <pre>
       * Цена по скидки.
       * Заполнена если оплата подписки прошла по скидке, иначе очищается
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
       */
      @java.lang.Override
      public boolean hasDiscountPrice() {
        return instance.hasDiscountPrice();
      }
      /**
       * <pre>
       * Цена по скидки.
       * Заполнена если оплата подписки прошла по скидке, иначе очищается
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
       */
      @java.lang.Override
      public com.google.protobuf.DoubleValue getDiscountPrice() {
        return instance.getDiscountPrice();
      }
      /**
       * <pre>
       * Цена по скидки.
       * Заполнена если оплата подписки прошла по скидке, иначе очищается
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
       */
      public Builder setDiscountPrice(com.google.protobuf.DoubleValue value) {
        copyOnWrite();
        instance.setDiscountPrice(value);
        return this;
        }
      /**
       * <pre>
       * Цена по скидки.
       * Заполнена если оплата подписки прошла по скидке, иначе очищается
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
       */
      public Builder setDiscountPrice(
          com.google.protobuf.DoubleValue.Builder builderForValue) {
        copyOnWrite();
        instance.setDiscountPrice(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Цена по скидки.
       * Заполнена если оплата подписки прошла по скидке, иначе очищается
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
       */
      public Builder mergeDiscountPrice(com.google.protobuf.DoubleValue value) {
        copyOnWrite();
        instance.mergeDiscountPrice(value);
        return this;
      }
      /**
       * <pre>
       * Цена по скидки.
       * Заполнена если оплата подписки прошла по скидке, иначе очищается
       * </pre>
       *
       * <code>.google.protobuf.DoubleValue discount_price = 16;</code>
       */
      public Builder clearDiscountPrice() {  copyOnWrite();
        instance.clearDiscountPrice();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.subscription.v1.Subscription)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "orpon_",
              "flatNumber_",
              "offerId_",
              "statusType_",
              "previousStatusType_",
              "price_",
              "createdAt_",
              "changedAt_",
              "isEnableAutoSubscribe_",
              "billingType_",
              "expiredAt_",
              "parentId_",
              "account_",
              "offer_",
              "discountPrice_",
            };
            java.lang.String info =
                "\u0000\u0010\u0000\u0000\u0001\u0010\u0010\u0000\u0000\u0000\u0001\u0208\u0002\u0002" +
                "\u0003\u0208\u0004\u0004\u0005\f\u0006\f\u0007\t\b\t\t\t\n\u0007\u000b\f\f\t\r\t" +
                "\u000e\t\u000f\t\u0010\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SubscriptionFilterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.SubscriptionFilter)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @return A list containing the orpons.
     */
    java.util.List<java.lang.Long> getOrponsList();
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @return The count of orpons.
     */
    int getOrponsCount();
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param index The index of the element to return.
     * @return The orpons at the given index.
     */
    long getOrpons(int index);

    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @return A list containing the flatNumbers.
     */
    java.util.List<java.lang.String>
        getFlatNumbersList();
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @return The count of flatNumbers.
     */
    int getFlatNumbersCount();
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param index The index of the element to return.
     * @return The flatNumbers at the given index.
     */
    java.lang.String getFlatNumbers(int index);
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param index The index of the element to return.
     * @return The flatNumbers at the given index.
     */
    com.google.protobuf.ByteString
        getFlatNumbersBytes(int index);
  }
  /**
   * <pre>
   * Фильтр подписок
   * </pre>
   *
   * Protobuf type {@code keyapis.subscription.v1.SubscriptionFilter}
   */
  public  static final class SubscriptionFilter extends
      com.google.protobuf.GeneratedMessageLite<
          SubscriptionFilter, SubscriptionFilter.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionFilter)
      SubscriptionFilterOrBuilder {
    private SubscriptionFilter() {
      orpons_ = emptyLongList();
      flatNumbers_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    public interface ValidationErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.SubscriptionFilter.ValidationError)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Формат ОРПОН некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
       * @return Whether the orpons field is set.
       */
      boolean hasOrpons();
      /**
       * <pre>
       * Формат ОРПОН некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
       * @return The orpons.
       */
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid getOrpons();

      /**
       * <pre>
       * Формат квартиры некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
       * @return Whether the flatNumbers field is set.
       */
      boolean hasFlatNumbers();
      /**
       * <pre>
       * Формат квартиры некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
       * @return The flatNumbers.
       */
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid getFlatNumbers();

      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибки валидации фильтра по подпискам.
     * Эти проверки выполняются до обращения в базу данных
     * </pre>
     *
     * Protobuf type {@code keyapis.subscription.v1.SubscriptionFilter.ValidationError}
     */
    public  static final class ValidationError extends
        com.google.protobuf.GeneratedMessageLite<
            ValidationError, ValidationError.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionFilter.ValidationError)
        ValidationErrorOrBuilder {
      private ValidationError() {
      }
      public interface OrponsInvalidOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Причины:
       * - Формат ОРПОН некорректен;
       * - ОРПОН передан некорректно, к примеру, значение &lt;= 1
       * </pre>
       *
       * Protobuf type {@code keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid}
       */
      public  static final class OrponsInvalid extends
          com.google.protobuf.GeneratedMessageLite<
              OrponsInvalid, OrponsInvalid.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid)
          OrponsInvalidOrBuilder {
        private OrponsInvalid() {
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

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

        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Причины:
         * - Формат ОРПОН некорректен;
         * - ОРПОН передан некорректно, к примеру, значение &lt;= 1
         * </pre>
         *
         * Protobuf type {@code keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid)
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalidOrBuilder {
          // Construct using ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


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


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

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      public interface FlatNumbersInvalidOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Причины:
       * - Формат квартиры некорректен (например, длина номера квартира более 4 знаков или отрицательное значение)
       * </pre>
       *
       * Protobuf type {@code keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid}
       */
      public  static final class FlatNumbersInvalid extends
          com.google.protobuf.GeneratedMessageLite<
              FlatNumbersInvalid, FlatNumbersInvalid.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid)
          FlatNumbersInvalidOrBuilder {
        private FlatNumbersInvalid() {
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

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

        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Причины:
         * - Формат квартиры некорректен (например, длина номера квартира более 4 знаков или отрицательное значение)
         * </pre>
         *
         * Protobuf type {@code keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid)
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalidOrBuilder {
          // Construct using ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


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


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

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

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

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

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

      public static final int ORPONS_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Формат ОРПОН некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
       */
      @java.lang.Override
      public boolean hasOrpons() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Формат ОРПОН некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid getOrpons() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid) reason_;
        }
        return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid.getDefaultInstance();
      }
      /**
       * <pre>
       * Формат ОРПОН некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
       */
      private void setOrpons(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Формат ОРПОН некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
       */
      private void mergeOrpons(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid.getDefaultInstance()) {
          reason_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Формат ОРПОН некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
       */
      private void clearOrpons() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static final int FLAT_NUMBERS_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Формат квартиры некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
       */
      @java.lang.Override
      public boolean hasFlatNumbers() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Формат квартиры некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid getFlatNumbers() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid) reason_;
        }
        return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid.getDefaultInstance();
      }
      /**
       * <pre>
       * Формат квартиры некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
       */
      private void setFlatNumbers(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Формат квартиры некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
       */
      private void mergeFlatNumbers(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid value) {
        value.getClass();
  if (reasonCase_ == 2 &&
            reason_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid.getDefaultInstance()) {
          reason_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Формат квартиры некорректен
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
       */
      private void clearFlatNumbers() {
        if (reasonCase_ == 2) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

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

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

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

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

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

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


        /**
         * <pre>
         * Формат ОРПОН некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
         */
        @java.lang.Override
        public boolean hasOrpons() {
          return instance.hasOrpons();
        }
        /**
         * <pre>
         * Формат ОРПОН некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid getOrpons() {
          return instance.getOrpons();
        }
        /**
         * <pre>
         * Формат ОРПОН некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
         */
        public Builder setOrpons(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid value) {
          copyOnWrite();
          instance.setOrpons(value);
          return this;
        }
        /**
         * <pre>
         * Формат ОРПОН некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
         */
        public Builder setOrpons(
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid.Builder builderForValue) {
          copyOnWrite();
          instance.setOrpons(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Формат ОРПОН некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
         */
        public Builder mergeOrpons(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.OrponsInvalid value) {
          copyOnWrite();
          instance.mergeOrpons(value);
          return this;
        }
        /**
         * <pre>
         * Формат ОРПОН некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.OrponsInvalid orpons = 1;</code>
         */
        public Builder clearOrpons() {
          copyOnWrite();
          instance.clearOrpons();
          return this;
        }

        /**
         * <pre>
         * Формат квартиры некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
         */
        @java.lang.Override
        public boolean hasFlatNumbers() {
          return instance.hasFlatNumbers();
        }
        /**
         * <pre>
         * Формат квартиры некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid getFlatNumbers() {
          return instance.getFlatNumbers();
        }
        /**
         * <pre>
         * Формат квартиры некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
         */
        public Builder setFlatNumbers(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid value) {
          copyOnWrite();
          instance.setFlatNumbers(value);
          return this;
        }
        /**
         * <pre>
         * Формат квартиры некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
         */
        public Builder setFlatNumbers(
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid.Builder builderForValue) {
          copyOnWrite();
          instance.setFlatNumbers(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Формат квартиры некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
         */
        public Builder mergeFlatNumbers(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.FlatNumbersInvalid value) {
          copyOnWrite();
          instance.mergeFlatNumbers(value);
          return this;
        }
        /**
         * <pre>
         * Формат квартиры некорректен
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;</code>
         */
        public Builder clearFlatNumbers() {
          copyOnWrite();
          instance.clearFlatNumbers();
          return this;
        }

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


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

      public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    public static final int ORPONS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.LongList orpons_;
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @return A list containing the orpons.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getOrponsList() {
      return orpons_;
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @return The count of orpons.
     */
    @java.lang.Override
    public int getOrponsCount() {
      return orpons_.size();
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param index The index of the element to return.
     * @return The orpons at the given index.
     */
    @java.lang.Override
    public long getOrpons(int index) {
      return orpons_.getLong(index);
    }
    private int orponsMemoizedSerializedSize = -1;
    private void ensureOrponsIsMutable() {
      com.google.protobuf.Internal.LongList tmp = orpons_;
      if (!tmp.isModifiable()) {
        orpons_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param index The index to set the value at.
     * @param value The orpons to set.
     */
    private void setOrpons(
        int index, long value) {
      ensureOrponsIsMutable();
      orpons_.setLong(index, value);
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param value The orpons to add.
     */
    private void addOrpons(long value) {
      ensureOrponsIsMutable();
      orpons_.addLong(value);
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param values The orpons to add.
     */
    private void addAllOrpons(
        java.lang.Iterable<? extends java.lang.Long> values) {
      ensureOrponsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, orpons_);
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     */
    private void clearOrpons() {
      orpons_ = emptyLongList();
    }

    public static final int FLAT_NUMBERS_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> flatNumbers_;
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @return A list containing the flatNumbers.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getFlatNumbersList() {
      return flatNumbers_;
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @return The count of flatNumbers.
     */
    @java.lang.Override
    public int getFlatNumbersCount() {
      return flatNumbers_.size();
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param index The index of the element to return.
     * @return The flatNumbers at the given index.
     */
    @java.lang.Override
    public java.lang.String getFlatNumbers(int index) {
      return flatNumbers_.get(index);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the flatNumbers at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFlatNumbersBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          flatNumbers_.get(index));
    }
    private void ensureFlatNumbersIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          flatNumbers_;  if (!tmp.isModifiable()) {
        flatNumbers_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param index The index to set the value at.
     * @param value The flatNumbers to set.
     */
    private void setFlatNumbers(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureFlatNumbersIsMutable();
      flatNumbers_.set(index, value);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param value The flatNumbers to add.
     */
    private void addFlatNumbers(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureFlatNumbersIsMutable();
      flatNumbers_.add(value);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param values The flatNumbers to add.
     */
    private void addAllFlatNumbers(
        java.lang.Iterable<java.lang.String> values) {
      ensureFlatNumbersIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, flatNumbers_);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     */
    private void clearFlatNumbers() {
      flatNumbers_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string flat_numbers = 2;</code>
     * @param value The bytes of the flatNumbers to add.
     */
    private void addFlatNumbersBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      ensureFlatNumbersIsMutable();
      flatNumbers_.add(value.toStringUtf8());
    }

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Фильтр подписок
     * </pre>
     *
     * Protobuf type {@code keyapis.subscription.v1.SubscriptionFilter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.subscription.v1.SubscriptionFilter)
        ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilterOrBuilder {
      // Construct using ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * По ОРПОНам
       * </pre>
       *
       * <code>repeated int64 orpons = 1;</code>
       * @return A list containing the orpons.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getOrponsList() {
        return java.util.Collections.unmodifiableList(
            instance.getOrponsList());
      }
      /**
       * <pre>
       * По ОРПОНам
       * </pre>
       *
       * <code>repeated int64 orpons = 1;</code>
       * @return The count of orpons.
       */
      @java.lang.Override
      public int getOrponsCount() {
        return instance.getOrponsCount();
      }
      /**
       * <pre>
       * По ОРПОНам
       * </pre>
       *
       * <code>repeated int64 orpons = 1;</code>
       * @param index The index of the element to return.
       * @return The orpons at the given index.
       */
      @java.lang.Override
      public long getOrpons(int index) {
        return instance.getOrpons(index);
      }
      /**
       * <pre>
       * По ОРПОНам
       * </pre>
       *
       * <code>repeated int64 orpons = 1;</code>
       * @param value The orpons to set.
       * @return This builder for chaining.
       */
      public Builder setOrpons(
          int index, long value) {
        copyOnWrite();
        instance.setOrpons(index, value);
        return this;
      }
      /**
       * <pre>
       * По ОРПОНам
       * </pre>
       *
       * <code>repeated int64 orpons = 1;</code>
       * @param value The orpons to add.
       * @return This builder for chaining.
       */
      public Builder addOrpons(long value) {
        copyOnWrite();
        instance.addOrpons(value);
        return this;
      }
      /**
       * <pre>
       * По ОРПОНам
       * </pre>
       *
       * <code>repeated int64 orpons = 1;</code>
       * @param values The orpons to add.
       * @return This builder for chaining.
       */
      public Builder addAllOrpons(
          java.lang.Iterable<? extends java.lang.Long> values) {
        copyOnWrite();
        instance.addAllOrpons(values);
        return this;
      }
      /**
       * <pre>
       * По ОРПОНам
       * </pre>
       *
       * <code>repeated int64 orpons = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrpons() {
        copyOnWrite();
        instance.clearOrpons();
        return this;
      }

      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @return A list containing the flatNumbers.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getFlatNumbersList() {
        return java.util.Collections.unmodifiableList(
            instance.getFlatNumbersList());
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @return The count of flatNumbers.
       */
      @java.lang.Override
      public int getFlatNumbersCount() {
        return instance.getFlatNumbersCount();
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @param index The index of the element to return.
       * @return The flatNumbers at the given index.
       */
      @java.lang.Override
      public java.lang.String getFlatNumbers(int index) {
        return instance.getFlatNumbers(index);
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the flatNumbers at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFlatNumbersBytes(int index) {
        return instance.getFlatNumbersBytes(index);
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @param index The index to set the value at.
       * @param value The flatNumbers to set.
       * @return This builder for chaining.
       */
      public Builder setFlatNumbers(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setFlatNumbers(index, value);
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @param value The flatNumbers to add.
       * @return This builder for chaining.
       */
      public Builder addFlatNumbers(
          java.lang.String value) {
        copyOnWrite();
        instance.addFlatNumbers(value);
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @param values The flatNumbers to add.
       * @return This builder for chaining.
       */
      public Builder addAllFlatNumbers(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllFlatNumbers(values);
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFlatNumbers() {
        copyOnWrite();
        instance.clearFlatNumbers();
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string flat_numbers = 2;</code>
       * @param value The bytes of the flatNumbers to add.
       * @return This builder for chaining.
       */
      public Builder addFlatNumbersBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addFlatNumbersBytes(value);
        return this;
      }

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SubscriptionPagingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.SubscriptionPaging)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Тип значения сортировки.
     * По умолчанию: ID
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
     * @return The enum numeric value on the wire for orderByType.
     */
    int getOrderByTypeValue();
    /**
     * <pre>
     * Тип значения сортировки.
     * По умолчанию: ID
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
     * @return The orderByType.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType getOrderByType();

    /**
     * <pre>
     * Тип направления сортировки.
     * По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
     * @return The enum numeric value on the wire for directionType.
     */
    int getDirectionTypeValue();
    /**
     * <pre>
     * Тип направления сортировки.
     * По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
     * @return The directionType.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType getDirectionType();

    /**
     * <pre>
     * Количество записей на страницу.
     * Минимальное значение: 1.
     * Максимальное значение: 100.
     * По умолчанию: 20.
     * Если значение 0 (не передано), то выставляем значение по умолчанию
     * </pre>
     *
     * <code>int32 limit = 3;</code>
     * @return The limit.
     */
    int getLimit();

    /**
     * <pre>
     * Сдвиг.
     * По умолчанию: 0
     * </pre>
     *
     * <code>int32 offset = 4;</code>
     * @return The offset.
     */
    int getOffset();
  }
  /**
   * <pre>
   * Пагинация по подпискам
   * </pre>
   *
   * Protobuf type {@code keyapis.subscription.v1.SubscriptionPaging}
   */
  public  static final class SubscriptionPaging extends
      com.google.protobuf.GeneratedMessageLite<
          SubscriptionPaging, SubscriptionPaging.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionPaging)
      SubscriptionPagingOrBuilder {
    private SubscriptionPaging() {
    }
    /**
     * <pre>
     * Справочник типов значений сортировки
     * </pre>
     *
     * Protobuf enum {@code keyapis.subscription.v1.SubscriptionPaging.OrderByType}
     */
    public enum OrderByType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>ORDER_BY_TYPE_UNKNOWN = 0;</code>
       */
      ORDER_BY_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * По идентификатору
       * </pre>
       *
       * <code>ID = 1;</code>
       */
      ID(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>ORDER_BY_TYPE_UNKNOWN = 0;</code>
       */
      public static final int ORDER_BY_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * По идентификатору
       * </pre>
       *
       * <code>ID = 1;</code>
       */
      public static final int ID_VALUE = 1;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return 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 OrderByType valueOf(int value) {
        return forNumber(value);
      }

      public static OrderByType forNumber(int value) {
        switch (value) {
          case 0: return ORDER_BY_TYPE_UNKNOWN;
          case 1: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<OrderByType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          OrderByType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<OrderByType>() {
              @java.lang.Override
              public OrderByType findValueByNumber(int number) {
                return OrderByType.forNumber(number);
              }
            };

      public static com.google.protobuf.Internal.EnumVerifier 
          internalGetVerifier() {
        return OrderByTypeVerifier.INSTANCE;
      }

      private static final class OrderByTypeVerifier implements 
           com.google.protobuf.Internal.EnumVerifier { 
              static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new OrderByTypeVerifier();
              @java.lang.Override
              public boolean isInRange(int number) {
                return OrderByType.forNumber(number) != null;
              }
            };

      private final int value;

      private OrderByType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:keyapis.subscription.v1.SubscriptionPaging.OrderByType)
    }

    /**
     * <pre>
     * Справочник типов направлений сортировки
     * </pre>
     *
     * Protobuf enum {@code keyapis.subscription.v1.SubscriptionPaging.DirectionType}
     */
    public enum DirectionType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>DIRECTION_TYPE_UNKNOWN = 0;</code>
       */
      DIRECTION_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * От большего к меньшему
       * </pre>
       *
       * <code>DESC = 1;</code>
       */
      DESC(1),
      /**
       * <pre>
       * От меньшего к большему
       * </pre>
       *
       * <code>ASC = 2;</code>
       */
      ASC(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>DIRECTION_TYPE_UNKNOWN = 0;</code>
       */
      public static final int DIRECTION_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * От большего к меньшему
       * </pre>
       *
       * <code>DESC = 1;</code>
       */
      public static final int DESC_VALUE = 1;
      /**
       * <pre>
       * От меньшего к большему
       * </pre>
       *
       * <code>ASC = 2;</code>
       */
      public static final int ASC_VALUE = 2;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return 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 DirectionType valueOf(int value) {
        return forNumber(value);
      }

      public static DirectionType forNumber(int value) {
        switch (value) {
          case 0: return DIRECTION_TYPE_UNKNOWN;
          case 1: return DESC;
          case 2: return ASC;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<DirectionType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          DirectionType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<DirectionType>() {
              @java.lang.Override
              public DirectionType findValueByNumber(int number) {
                return DirectionType.forNumber(number);
              }
            };

      public static com.google.protobuf.Internal.EnumVerifier 
          internalGetVerifier() {
        return DirectionTypeVerifier.INSTANCE;
      }

      private static final class DirectionTypeVerifier implements 
           com.google.protobuf.Internal.EnumVerifier { 
              static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new DirectionTypeVerifier();
              @java.lang.Override
              public boolean isInRange(int number) {
                return DirectionType.forNumber(number) != null;
              }
            };

      private final int value;

      private DirectionType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:keyapis.subscription.v1.SubscriptionPaging.DirectionType)
    }

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

      /**
       * <pre>
       * Количество передано некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
       * @return Whether the limit field is set.
       */
      boolean hasLimit();
      /**
       * <pre>
       * Количество передано некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
       * @return The limit.
       */
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid getLimit();

      /**
       * <pre>
       * Сдвиг передан некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
       * @return Whether the offset field is set.
       */
      boolean hasOffset();
      /**
       * <pre>
       * Сдвиг передан некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
       * @return The offset.
       */
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid getOffset();

      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка валидации постраничной пагинации по подпискам.
     * Эти проверки выполняются до обращения в базу данных
     * </pre>
     *
     * Protobuf type {@code keyapis.subscription.v1.SubscriptionPaging.ValidationError}
     */
    public  static final class ValidationError extends
        com.google.protobuf.GeneratedMessageLite<
            ValidationError, ValidationError.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionPaging.ValidationError)
        ValidationErrorOrBuilder {
      private ValidationError() {
      }
      public interface LimitInvalidOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Причины:
       * - Значение количества &lt; 0 или &gt; 100
       * </pre>
       *
       * Protobuf type {@code keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid}
       */
      public  static final class LimitInvalid extends
          com.google.protobuf.GeneratedMessageLite<
              LimitInvalid, LimitInvalid.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid)
          LimitInvalidOrBuilder {
        private LimitInvalid() {
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

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

        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Причины:
         * - Значение количества &lt; 0 или &gt; 100
         * </pre>
         *
         * Protobuf type {@code keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid)
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalidOrBuilder {
          // Construct using ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


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


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

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      public interface OffsetInvalidOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Причины:
       * - Значение сдвига &lt; 0
       * </pre>
       *
       * Protobuf type {@code keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid}
       */
      public  static final class OffsetInvalid extends
          com.google.protobuf.GeneratedMessageLite<
              OffsetInvalid, OffsetInvalid.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid)
          OffsetInvalidOrBuilder {
        private OffsetInvalid() {
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

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

        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Причины:
         * - Значение сдвига &lt; 0
         * </pre>
         *
         * Protobuf type {@code keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid)
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalidOrBuilder {
          // Construct using ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


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


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

        public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

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

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

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

      public static final int LIMIT_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Количество передано некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
       */
      @java.lang.Override
      public boolean hasLimit() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Количество передано некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid getLimit() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid) reason_;
        }
        return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid.getDefaultInstance();
      }
      /**
       * <pre>
       * Количество передано некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
       */
      private void setLimit(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Количество передано некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
       */
      private void mergeLimit(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid.getDefaultInstance()) {
          reason_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Количество передано некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
       */
      private void clearLimit() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static final int OFFSET_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Сдвиг передан некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
       */
      @java.lang.Override
      public boolean hasOffset() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Сдвиг передан некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid getOffset() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid) reason_;
        }
        return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid.getDefaultInstance();
      }
      /**
       * <pre>
       * Сдвиг передан некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
       */
      private void setOffset(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Сдвиг передан некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
       */
      private void mergeOffset(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid value) {
        value.getClass();
  if (reasonCase_ == 2 &&
            reason_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid.getDefaultInstance()) {
          reason_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Сдвиг передан некорректно
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
       */
      private void clearOffset() {
        if (reasonCase_ == 2) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

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

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

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

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

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

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


        /**
         * <pre>
         * Количество передано некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
         */
        @java.lang.Override
        public boolean hasLimit() {
          return instance.hasLimit();
        }
        /**
         * <pre>
         * Количество передано некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid getLimit() {
          return instance.getLimit();
        }
        /**
         * <pre>
         * Количество передано некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
         */
        public Builder setLimit(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid value) {
          copyOnWrite();
          instance.setLimit(value);
          return this;
        }
        /**
         * <pre>
         * Количество передано некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
         */
        public Builder setLimit(
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid.Builder builderForValue) {
          copyOnWrite();
          instance.setLimit(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Количество передано некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
         */
        public Builder mergeLimit(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.LimitInvalid value) {
          copyOnWrite();
          instance.mergeLimit(value);
          return this;
        }
        /**
         * <pre>
         * Количество передано некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.LimitInvalid limit = 1;</code>
         */
        public Builder clearLimit() {
          copyOnWrite();
          instance.clearLimit();
          return this;
        }

        /**
         * <pre>
         * Сдвиг передан некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
         */
        @java.lang.Override
        public boolean hasOffset() {
          return instance.hasOffset();
        }
        /**
         * <pre>
         * Сдвиг передан некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid getOffset() {
          return instance.getOffset();
        }
        /**
         * <pre>
         * Сдвиг передан некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
         */
        public Builder setOffset(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid value) {
          copyOnWrite();
          instance.setOffset(value);
          return this;
        }
        /**
         * <pre>
         * Сдвиг передан некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
         */
        public Builder setOffset(
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid.Builder builderForValue) {
          copyOnWrite();
          instance.setOffset(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Сдвиг передан некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
         */
        public Builder mergeOffset(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.OffsetInvalid value) {
          copyOnWrite();
          instance.mergeOffset(value);
          return this;
        }
        /**
         * <pre>
         * Сдвиг передан некорректно
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError.OffsetInvalid offset = 2;</code>
         */
        public Builder clearOffset() {
          copyOnWrite();
          instance.clearOffset();
          return this;
        }

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


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

      public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    public static final int ORDER_BY_TYPE_FIELD_NUMBER = 1;
    private int orderByType_;
    /**
     * <pre>
     * Тип значения сортировки.
     * По умолчанию: ID
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
     * @return The enum numeric value on the wire for orderByType.
     */
    @java.lang.Override
    public int getOrderByTypeValue() {
      return orderByType_;
    }
    /**
     * <pre>
     * Тип значения сортировки.
     * По умолчанию: ID
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
     * @return The orderByType.
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType getOrderByType() {
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType result = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType.forNumber(orderByType_);
      return result == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Тип значения сортировки.
     * По умолчанию: ID
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
     * @param value The enum numeric value on the wire for orderByType to set.
     */
    private void setOrderByTypeValue(int value) {
        orderByType_ = value;
    }
    /**
     * <pre>
     * Тип значения сортировки.
     * По умолчанию: ID
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
     * @param value The orderByType to set.
     */
    private void setOrderByType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType value) {
      orderByType_ = value.getNumber();

    }
    /**
     * <pre>
     * Тип значения сортировки.
     * По умолчанию: ID
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
     */
    private void clearOrderByType() {

      orderByType_ = 0;
    }

    public static final int DIRECTION_TYPE_FIELD_NUMBER = 2;
    private int directionType_;
    /**
     * <pre>
     * Тип направления сортировки.
     * По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
     * @return The enum numeric value on the wire for directionType.
     */
    @java.lang.Override
    public int getDirectionTypeValue() {
      return directionType_;
    }
    /**
     * <pre>
     * Тип направления сортировки.
     * По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
     * @return The directionType.
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType getDirectionType() {
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType result = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType.forNumber(directionType_);
      return result == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Тип направления сортировки.
     * По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
     * @param value The enum numeric value on the wire for directionType to set.
     */
    private void setDirectionTypeValue(int value) {
        directionType_ = value;
    }
    /**
     * <pre>
     * Тип направления сортировки.
     * По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
     * @param value The directionType to set.
     */
    private void setDirectionType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType value) {
      directionType_ = value.getNumber();

    }
    /**
     * <pre>
     * Тип направления сортировки.
     * По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
     */
    private void clearDirectionType() {

      directionType_ = 0;
    }

    public static final int LIMIT_FIELD_NUMBER = 3;
    private int limit_;
    /**
     * <pre>
     * Количество записей на страницу.
     * Минимальное значение: 1.
     * Максимальное значение: 100.
     * По умолчанию: 20.
     * Если значение 0 (не передано), то выставляем значение по умолчанию
     * </pre>
     *
     * <code>int32 limit = 3;</code>
     * @return The limit.
     */
    @java.lang.Override
    public int getLimit() {
      return limit_;
    }
    /**
     * <pre>
     * Количество записей на страницу.
     * Минимальное значение: 1.
     * Максимальное значение: 100.
     * По умолчанию: 20.
     * Если значение 0 (не передано), то выставляем значение по умолчанию
     * </pre>
     *
     * <code>int32 limit = 3;</code>
     * @param value The limit to set.
     */
    private void setLimit(int value) {
      
      limit_ = value;
    }
    /**
     * <pre>
     * Количество записей на страницу.
     * Минимальное значение: 1.
     * Максимальное значение: 100.
     * По умолчанию: 20.
     * Если значение 0 (не передано), то выставляем значение по умолчанию
     * </pre>
     *
     * <code>int32 limit = 3;</code>
     */
    private void clearLimit() {

      limit_ = 0;
    }

    public static final int OFFSET_FIELD_NUMBER = 4;
    private int offset_;
    /**
     * <pre>
     * Сдвиг.
     * По умолчанию: 0
     * </pre>
     *
     * <code>int32 offset = 4;</code>
     * @return The offset.
     */
    @java.lang.Override
    public int getOffset() {
      return offset_;
    }
    /**
     * <pre>
     * Сдвиг.
     * По умолчанию: 0
     * </pre>
     *
     * <code>int32 offset = 4;</code>
     * @param value The offset to set.
     */
    private void setOffset(int value) {
      
      offset_ = value;
    }
    /**
     * <pre>
     * Сдвиг.
     * По умолчанию: 0
     * </pre>
     *
     * <code>int32 offset = 4;</code>
     */
    private void clearOffset() {

      offset_ = 0;
    }

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Пагинация по подпискам
     * </pre>
     *
     * Protobuf type {@code keyapis.subscription.v1.SubscriptionPaging}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.subscription.v1.SubscriptionPaging)
        ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPagingOrBuilder {
      // Construct using ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Тип значения сортировки.
       * По умолчанию: ID
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
       * @return The enum numeric value on the wire for orderByType.
       */
      @java.lang.Override
      public int getOrderByTypeValue() {
        return instance.getOrderByTypeValue();
      }
      /**
       * <pre>
       * Тип значения сортировки.
       * По умолчанию: ID
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
       * @param value The orderByType to set.
       * @return This builder for chaining.
       */
      public Builder setOrderByTypeValue(int value) {
        copyOnWrite();
        instance.setOrderByTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * Тип значения сортировки.
       * По умолчанию: ID
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
       * @return The orderByType.
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType getOrderByType() {
        return instance.getOrderByType();
      }
      /**
       * <pre>
       * Тип значения сортировки.
       * По умолчанию: ID
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
       * @param value The enum numeric value on the wire for orderByType to set.
       * @return This builder for chaining.
       */
      public Builder setOrderByType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.OrderByType value) {
        copyOnWrite();
        instance.setOrderByType(value);
        return this;
      }
      /**
       * <pre>
       * Тип значения сортировки.
       * По умолчанию: ID
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.OrderByType order_by_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderByType() {
        copyOnWrite();
        instance.clearOrderByType();
        return this;
      }

      /**
       * <pre>
       * Тип направления сортировки.
       * По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
       * @return The enum numeric value on the wire for directionType.
       */
      @java.lang.Override
      public int getDirectionTypeValue() {
        return instance.getDirectionTypeValue();
      }
      /**
       * <pre>
       * Тип направления сортировки.
       * По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
       * @param value The directionType to set.
       * @return This builder for chaining.
       */
      public Builder setDirectionTypeValue(int value) {
        copyOnWrite();
        instance.setDirectionTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * Тип направления сортировки.
       * По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
       * @return The directionType.
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType getDirectionType() {
        return instance.getDirectionType();
      }
      /**
       * <pre>
       * Тип направления сортировки.
       * По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
       * @param value The enum numeric value on the wire for directionType to set.
       * @return This builder for chaining.
       */
      public Builder setDirectionType(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.DirectionType value) {
        copyOnWrite();
        instance.setDirectionType(value);
        return this;
      }
      /**
       * <pre>
       * Тип направления сортировки.
       * По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.DirectionType direction_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDirectionType() {
        copyOnWrite();
        instance.clearDirectionType();
        return this;
      }

      /**
       * <pre>
       * Количество записей на страницу.
       * Минимальное значение: 1.
       * Максимальное значение: 100.
       * По умолчанию: 20.
       * Если значение 0 (не передано), то выставляем значение по умолчанию
       * </pre>
       *
       * <code>int32 limit = 3;</code>
       * @return The limit.
       */
      @java.lang.Override
      public int getLimit() {
        return instance.getLimit();
      }
      /**
       * <pre>
       * Количество записей на страницу.
       * Минимальное значение: 1.
       * Максимальное значение: 100.
       * По умолчанию: 20.
       * Если значение 0 (не передано), то выставляем значение по умолчанию
       * </pre>
       *
       * <code>int32 limit = 3;</code>
       * @param value The limit to set.
       * @return This builder for chaining.
       */
      public Builder setLimit(int value) {
        copyOnWrite();
        instance.setLimit(value);
        return this;
      }
      /**
       * <pre>
       * Количество записей на страницу.
       * Минимальное значение: 1.
       * Максимальное значение: 100.
       * По умолчанию: 20.
       * Если значение 0 (не передано), то выставляем значение по умолчанию
       * </pre>
       *
       * <code>int32 limit = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLimit() {
        copyOnWrite();
        instance.clearLimit();
        return this;
      }

      /**
       * <pre>
       * Сдвиг.
       * По умолчанию: 0
       * </pre>
       *
       * <code>int32 offset = 4;</code>
       * @return The offset.
       */
      @java.lang.Override
      public int getOffset() {
        return instance.getOffset();
      }
      /**
       * <pre>
       * Сдвиг.
       * По умолчанию: 0
       * </pre>
       *
       * <code>int32 offset = 4;</code>
       * @param value The offset to set.
       * @return This builder for chaining.
       */
      public Builder setOffset(int value) {
        copyOnWrite();
        instance.setOffset(value);
        return this;
      }
      /**
       * <pre>
       * Сдвиг.
       * По умолчанию: 0
       * </pre>
       *
       * <code>int32 offset = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOffset() {
        copyOnWrite();
        instance.clearOffset();
        return this;
      }

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetSubscriptionRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.GetSubscriptionRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <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>
   *
   * Protobuf type {@code keyapis.subscription.v1.GetSubscriptionRequest}
   */
  public  static final class GetSubscriptionRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetSubscriptionRequest, GetSubscriptionRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.GetSubscriptionRequest)
      GetSubscriptionRequestOrBuilder {
    private GetSubscriptionRequest() {
      id_ = "";
    }
    public static final int ID_FIELD_NUMBER = 1;
    private java.lang.String id_;
    /**
     * <pre>
     * Идентификатор подписки
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор подписки
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(id_);
    }
    /**
     * <pre>
     * Идентификатор подписки
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The id to set.
     */
    private void setId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор подписки
     * </pre>
     *
     * <code>string id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearId() {

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

    }

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


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

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetSubscriptionResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.GetSubscriptionResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     * @return The data.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription getData();

    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос получения подписки
   * </pre>
   *
   * Protobuf type {@code keyapis.subscription.v1.GetSubscriptionResponse}
   */
  public  static final class GetSubscriptionResponse extends
      com.google.protobuf.GeneratedMessageLite<
          GetSubscriptionResponse, GetSubscriptionResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.GetSubscriptionResponse)
      GetSubscriptionResponseOrBuilder {
    private GetSubscriptionResponse() {
    }
    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      DATA(1),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

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

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

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

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription) type_;
      }
      return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.getDefaultInstance();
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    private void setData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    private void mergeData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.getDefaultInstance()) {
        type_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    private void clearData() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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

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

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


      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder setData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetSubscriptionListRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.GetSubscriptionListRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     * @return Whether the filter field is set.
     */
    boolean hasFilter();
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     * @return The filter.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter getFilter();

    /**
     * <pre>
     * Пагинация
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
     * @return Whether the paging field is set.
     */
    boolean hasPaging();
    /**
     * <pre>
     * Пагинация
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
     * @return The paging.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging getPaging();

    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListRequest.PaginationCase getPaginationCase();
  }
  /**
   * <pre>
   * Запрос получения списка подписок
   * </pre>
   *
   * Protobuf type {@code keyapis.subscription.v1.GetSubscriptionListRequest}
   */
  public  static final class GetSubscriptionListRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetSubscriptionListRequest, GetSubscriptionListRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.GetSubscriptionListRequest)
      GetSubscriptionListRequestOrBuilder {
    private GetSubscriptionListRequest() {
    }
    private int paginationCase_ = 0;
    private java.lang.Object pagination_;
    public enum PaginationCase {
      PAGING(2),
      PAGINATION_NOT_SET(0);
      private final int value;
      private PaginationCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PaginationCase valueOf(int value) {
        return forNumber(value);
      }

      public static PaginationCase forNumber(int value) {
        switch (value) {
          case 2: return PAGING;
          case 0: return PAGINATION_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public PaginationCase
    getPaginationCase() {
      return PaginationCase.forNumber(
          paginationCase_);
    }

    private void clearPagination() {
      paginationCase_ = 0;
      pagination_ = null;
    }

    public static final int FILTER_FIELD_NUMBER = 1;
    private ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter filter_;
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    @java.lang.Override
    public boolean hasFilter() {
      return filter_ != null;
    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter getFilter() {
      return filter_ == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.getDefaultInstance() : filter_;
    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    private void setFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
      value.getClass();
  filter_ = value;

      }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
      value.getClass();
  if (filter_ != null &&
          filter_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.getDefaultInstance()) {
        filter_ =
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.newBuilder(filter_).mergeFrom(value).buildPartial();
      } else {
        filter_ = value;
      }

    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    private void clearFilter() {  filter_ = null;

    }

    public static final int PAGING_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Пагинация
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
     */
    @java.lang.Override
    public boolean hasPaging() {
      return paginationCase_ == 2;
    }
    /**
     * <pre>
     * Пагинация
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging getPaging() {
      if (paginationCase_ == 2) {
         return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging) pagination_;
      }
      return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.getDefaultInstance();
    }
    /**
     * <pre>
     * Пагинация
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
     */
    private void setPaging(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging value) {
      value.getClass();
  pagination_ = value;
      paginationCase_ = 2;
    }
    /**
     * <pre>
     * Пагинация
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
     */
    private void mergePaging(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging value) {
      value.getClass();
  if (paginationCase_ == 2 &&
          pagination_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.getDefaultInstance()) {
        pagination_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging) pagination_)
            .mergeFrom(value).buildPartial();
      } else {
        pagination_ = value;
      }
      paginationCase_ = 2;
    }
    /**
     * <pre>
     * Пагинация
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
     */
    private void clearPaging() {
      if (paginationCase_ == 2) {
        paginationCase_ = 0;
        pagination_ = null;
      }
    }

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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

      @java.lang.Override
      public PaginationCase
          getPaginationCase() {
        return instance.getPaginationCase();
      }

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


      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      @java.lang.Override
      public boolean hasFilter() {
        return instance.hasFilter();
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter getFilter() {
        return instance.getFilter();
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder setFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
        copyOnWrite();
        instance.setFilter(value);
        return this;
        }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder setFilter(
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.Builder builderForValue) {
        copyOnWrite();
        instance.setFilter(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder mergeFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
        copyOnWrite();
        instance.mergeFilter(value);
        return this;
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder clearFilter() {  copyOnWrite();
        instance.clearFilter();
        return this;
      }

      /**
       * <pre>
       * Пагинация
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
       */
      @java.lang.Override
      public boolean hasPaging() {
        return instance.hasPaging();
      }
      /**
       * <pre>
       * Пагинация
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging getPaging() {
        return instance.getPaging();
      }
      /**
       * <pre>
       * Пагинация
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
       */
      public Builder setPaging(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging value) {
        copyOnWrite();
        instance.setPaging(value);
        return this;
      }
      /**
       * <pre>
       * Пагинация
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
       */
      public Builder setPaging(
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.Builder builderForValue) {
        copyOnWrite();
        instance.setPaging(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Пагинация
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
       */
      public Builder mergePaging(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging value) {
        copyOnWrite();
        instance.mergePaging(value);
        return this;
      }
      /**
       * <pre>
       * Пагинация
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging paging = 2;</code>
       */
      public Builder clearPaging() {
        copyOnWrite();
        instance.clearPaging();
        return this;
      }

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetSubscriptionListResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.GetSubscriptionListResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     * @return The data.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription getData();

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

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

      /**
       * <pre>
       * Ошибка фильтрации
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       * @return Whether the subscriptionFilterValidation field is set.
       */
      boolean hasSubscriptionFilterValidation();
      /**
       * <pre>
       * Ошибка фильтрации
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       * @return The subscriptionFilterValidation.
       */
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError getSubscriptionFilterValidation();

      /**
       * <pre>
       * Ошибка пагинации  по страницам
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
       * @return Whether the subscriptionPagingValidation field is set.
       */
      boolean hasSubscriptionPagingValidation();
      /**
       * <pre>
       * Ошибка пагинации  по страницам
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
       * @return The subscriptionPagingValidation.
       */
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError getSubscriptionPagingValidation();

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

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

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

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

      public static final int SUBSCRIPTION_FILTER_VALIDATION_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка фильтрации
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      @java.lang.Override
      public boolean hasSubscriptionFilterValidation() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка фильтрации
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError getSubscriptionFilterValidation() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError) reason_;
        }
        return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка фильтрации
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      private void setSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка фильтрации
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      private void mergeSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.getDefaultInstance()) {
          reason_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка фильтрации
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      private void clearSubscriptionFilterValidation() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static final int SUBSCRIPTION_PAGING_VALIDATION_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Ошибка пагинации  по страницам
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
       */
      @java.lang.Override
      public boolean hasSubscriptionPagingValidation() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка пагинации  по страницам
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError getSubscriptionPagingValidation() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError) reason_;
        }
        return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка пагинации  по страницам
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
       */
      private void setSubscriptionPagingValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Ошибка пагинации  по страницам
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
       */
      private void mergeSubscriptionPagingValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError value) {
        value.getClass();
  if (reasonCase_ == 2 &&
            reason_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.getDefaultInstance()) {
          reason_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Ошибка пагинации  по страницам
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
       */
      private void clearSubscriptionPagingValidation() {
        if (reasonCase_ == 2) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

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

      public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

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

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

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


        /**
         * <pre>
         * Ошибка фильтрации
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasSubscriptionFilterValidation() {
          return instance.hasSubscriptionFilterValidation();
        }
        /**
         * <pre>
         * Ошибка фильтрации
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError getSubscriptionFilterValidation() {
          return instance.getSubscriptionFilterValidation();
        }
        /**
         * <pre>
         * Ошибка фильтрации
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder setSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
          copyOnWrite();
          instance.setSubscriptionFilterValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка фильтрации
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder setSubscriptionFilterValidation(
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setSubscriptionFilterValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка фильтрации
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder mergeSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
          copyOnWrite();
          instance.mergeSubscriptionFilterValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка фильтрации
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder clearSubscriptionFilterValidation() {
          copyOnWrite();
          instance.clearSubscriptionFilterValidation();
          return this;
        }

        /**
         * <pre>
         * Ошибка пагинации  по страницам
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
         */
        @java.lang.Override
        public boolean hasSubscriptionPagingValidation() {
          return instance.hasSubscriptionPagingValidation();
        }
        /**
         * <pre>
         * Ошибка пагинации  по страницам
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError getSubscriptionPagingValidation() {
          return instance.getSubscriptionPagingValidation();
        }
        /**
         * <pre>
         * Ошибка пагинации  по страницам
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
         */
        public Builder setSubscriptionPagingValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError value) {
          copyOnWrite();
          instance.setSubscriptionPagingValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка пагинации  по страницам
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
         */
        public Builder setSubscriptionPagingValidation(
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setSubscriptionPagingValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка пагинации  по страницам
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
         */
        public Builder mergeSubscriptionPagingValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionPaging.ValidationError value) {
          copyOnWrite();
          instance.mergeSubscriptionPagingValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка пагинации  по страницам
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionPaging.ValidationError subscription_paging_validation = 2;</code>
         */
        public Builder clearSubscriptionPagingValidation() {
          copyOnWrite();
          instance.clearSubscriptionPagingValidation();
          return this;
        }

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


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

      public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

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

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

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

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription) type_;
      }
      return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.getDefaultInstance();
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    private void setData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    private void mergeData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.getDefaultInstance()) {
        type_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Подписка
     * </pre>
     *
     * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
     */
    private void clearData() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

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

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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

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

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


      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder setData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.Subscription value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Подписка
       * </pre>
       *
       * <code>.keyapis.subscription.v1.Subscription data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionListResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetSubscriptionCountRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.GetSubscriptionCountRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     * @return Whether the filter field is set.
     */
    boolean hasFilter();
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     * @return The filter.
     */
    ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter getFilter();
  }
  /**
   * <pre>
   * Запрос получения количества подписок
   * </pre>
   *
   * Protobuf type {@code keyapis.subscription.v1.GetSubscriptionCountRequest}
   */
  public  static final class GetSubscriptionCountRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetSubscriptionCountRequest, GetSubscriptionCountRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.subscription.v1.GetSubscriptionCountRequest)
      GetSubscriptionCountRequestOrBuilder {
    private GetSubscriptionCountRequest() {
    }
    public static final int FILTER_FIELD_NUMBER = 1;
    private ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter filter_;
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    @java.lang.Override
    public boolean hasFilter() {
      return filter_ != null;
    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter getFilter() {
      return filter_ == null ? ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.getDefaultInstance() : filter_;
    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    private void setFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
      value.getClass();
  filter_ = value;

      }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
      value.getClass();
  if (filter_ != null &&
          filter_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.getDefaultInstance()) {
        filter_ =
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.newBuilder(filter_).mergeFrom(value).buildPartial();
      } else {
        filter_ = value;
      }

    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
     */
    private void clearFilter() {  filter_ = null;

    }

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      @java.lang.Override
      public boolean hasFilter() {
        return instance.hasFilter();
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter getFilter() {
        return instance.getFilter();
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder setFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
        copyOnWrite();
        instance.setFilter(value);
        return this;
        }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder setFilter(
          ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.Builder builderForValue) {
        copyOnWrite();
        instance.setFilter(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder mergeFilter(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter value) {
        copyOnWrite();
        instance.mergeFilter(value);
        return this;
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter filter = 1;</code>
       */
      public Builder clearFilter() {  copyOnWrite();
        instance.clearFilter();
        return this;
      }

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetSubscriptionCountResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.subscription.v1.GetSubscriptionCountResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Всего подписок
     * </pre>
     *
     * <code>int32 data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Всего подписок
     * </pre>
     *
     * <code>int32 data = 1;</code>
     * @return The data.
     */
    int getData();

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

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

      /**
       * <pre>
       * Ошибка фильтрации подписок
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       * @return Whether the subscriptionFilterValidation field is set.
       */
      boolean hasSubscriptionFilterValidation();
      /**
       * <pre>
       * Ошибка фильтрации подписок
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       * @return The subscriptionFilterValidation.
       */
      ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError getSubscriptionFilterValidation();

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

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

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

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

      public static final int SUBSCRIPTION_FILTER_VALIDATION_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка фильтрации подписок
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      @java.lang.Override
      public boolean hasSubscriptionFilterValidation() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка фильтрации подписок
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError getSubscriptionFilterValidation() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError) reason_;
        }
        return ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка фильтрации подписок
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      private void setSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка фильтрации подписок
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      private void mergeSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.getDefaultInstance()) {
          reason_ = ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.newBuilder((ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка фильтрации подписок
       * </pre>
       *
       * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
       */
      private void clearSubscriptionFilterValidation() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

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

      public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

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

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

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


        /**
         * <pre>
         * Ошибка фильтрации подписок
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasSubscriptionFilterValidation() {
          return instance.hasSubscriptionFilterValidation();
        }
        /**
         * <pre>
         * Ошибка фильтрации подписок
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError getSubscriptionFilterValidation() {
          return instance.getSubscriptionFilterValidation();
        }
        /**
         * <pre>
         * Ошибка фильтрации подписок
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder setSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
          copyOnWrite();
          instance.setSubscriptionFilterValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка фильтрации подписок
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder setSubscriptionFilterValidation(
            ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setSubscriptionFilterValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка фильтрации подписок
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder mergeSubscriptionFilterValidation(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.SubscriptionFilter.ValidationError value) {
          copyOnWrite();
          instance.mergeSubscriptionFilterValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка фильтрации подписок
         * </pre>
         *
         * <code>.keyapis.subscription.v1.SubscriptionFilter.ValidationError subscription_filter_validation = 1;</code>
         */
        public Builder clearSubscriptionFilterValidation() {
          copyOnWrite();
          instance.clearSubscriptionFilterValidation();
          return this;
        }

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


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

      public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

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

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

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

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Всего подписок
     * </pre>
     *
     * <code>int32 data = 1;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Всего подписок
     * </pre>
     *
     * <code>int32 data = 1;</code>
     * @return The data.
     */
    @java.lang.Override
    public int getData() {
      if (typeCase_ == 1) {
        return (java.lang.Integer) type_;
      }
      return 0;
    }
    /**
     * <pre>
     * Всего подписок
     * </pre>
     *
     * <code>int32 data = 1;</code>
     * @param value The data to set.
     */
    private void setData(int value) {
      typeCase_ = 1;
      type_ = value;
    }
    /**
     * <pre>
     * Всего подписок
     * </pre>
     *
     * <code>int32 data = 1;</code>
     */
    private void clearData() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

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

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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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

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

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


      /**
       * <pre>
       * Всего подписок
       * </pre>
       *
       * <code>int32 data = 1;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Всего подписок
       * </pre>
       *
       * <code>int32 data = 1;</code>
       * @return The data.
       */
      @java.lang.Override
      public int getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Всего подписок
       * </pre>
       *
       * <code>int32 data = 1;</code>
       * @param value The data to set.
       * @return This builder for chaining.
       */
      public Builder setData(int value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Всего подписок
       * </pre>
       *
       * <code>int32 data = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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

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


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

    public static ru.keyapis.subscription.v1.KeyapisSubscriptionV1Proto.GetSubscriptionCountResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
