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

package ru.keyapis.multiapp.v1;

public final class KeyapisMultiappV1Proto {
  private KeyapisMultiappV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface NotificationTemplateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplate)
      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>
     * Заголовок шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..128
     * </pre>
     *
     * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The templateHeader.
     */
    java.lang.String getTemplateHeader();
    /**
     * <pre>
     * Заголовок шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..128
     * </pre>
     *
     * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for templateHeader.
     */
    com.google.protobuf.ByteString
        getTemplateHeaderBytes();

    /**
     * <pre>
     * Тело шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..512
     * </pre>
     *
     * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The templateText.
     */
    java.lang.String getTemplateText();
    /**
     * <pre>
     * Тело шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..512
     * </pre>
     *
     * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for templateText.
     */
    com.google.protobuf.ByteString
        getTemplateTextBytes();

    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the createdAt field is set.
     */
    boolean hasCreatedAt();
    /**
     * <pre>
     * Дата создания.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp created_at = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The createdAt.
     */
    com.google.protobuf.Timestamp getCreatedAt();

    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * При изменении должен совпадать со значением из БД.
     * Является версией объекта.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 5;</code>
     * @return Whether the changedAt field is set.
     */
    boolean hasChangedAt();
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * При изменении должен совпадать со значением из БД.
     * Является версией объекта.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 5;</code>
     * @return The changedAt.
     */
    com.google.protobuf.Timestamp getChangedAt();

    /**
     * <pre>
     * Дата удаления.
     * # Тип: DateTime?
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the deletedAt field is set.
     */
    boolean hasDeletedAt();
    /**
     * <pre>
     * Дата удаления.
     * # Тип: DateTime?
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The deletedAt.
     */
    com.google.protobuf.Timestamp getDeletedAt();

    /**
     * <pre>
     * Системное наименование.
     * # Диапазон: 3..256
     * </pre>
     *
     * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The title.
     */
    java.lang.String getTitle();
    /**
     * <pre>
     * Системное наименование.
     * # Диапазон: 3..256
     * </pre>
     *
     * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for title.
     */
    com.google.protobuf.ByteString
        getTitleBytes();
  }
  /**
   * <pre>
   * Шаблон уведомления.
   * # Описание модели
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplate}
   */
  public  static final class NotificationTemplate extends
      com.google.protobuf.GeneratedMessageLite<
          NotificationTemplate, NotificationTemplate.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplate)
      NotificationTemplateOrBuilder {
    private NotificationTemplate() {
      id_ = "";
      templateHeader_ = "";
      templateText_ = "";
      title_ = "";
    }
    public interface SavingErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplate.SavingError)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Конфликт версий
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
       * @return Whether the conflict field is set.
       */
      boolean hasConflict();
      /**
       * <pre>
       * Конфликт версий
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
       * @return The conflict.
       */
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict getConflict();

      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка сохранения.
     * Эти проверки выполняются при работе с базой данных и сторонними сервисами
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplate.SavingError}
     */
    public  static final class SavingError extends
        com.google.protobuf.GeneratedMessageLite<
            SavingError, SavingError.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplate.SavingError)
        SavingErrorOrBuilder {
      private SavingError() {
      }
      public interface ConflictOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Конфликт версий.
       * Причины:
       * - В базе хранится другая версия строки, значения changed_at отличаются
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict}
       */
      public  static final class Conflict extends
          com.google.protobuf.GeneratedMessageLite<
              Conflict, Conflict.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict)
          ConflictOrBuilder {
        private Conflict() {
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Конфликт версий.
         * Причины:
         * - В базе хранится другая версия строки, значения changed_at отличаются
         * </pre>
         *
         * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict)
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.ConflictOrBuilder {
          // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict)
        }
        @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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict();
            }
            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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict> parser = PARSER;
              if (parser == null) {
                synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict>(
                            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.multiapp.v1.NotificationTemplate.SavingError.Conflict)
        private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict DEFAULT_INSTANCE;
        static {
          Conflict defaultInstance = new Conflict();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Conflict.class, defaultInstance);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        CONFLICT(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 CONFLICT;
            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 CONFLICT_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Конфликт версий
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
       */
      @java.lang.Override
      public boolean hasConflict() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Конфликт версий
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict getConflict() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict) reason_;
        }
        return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict.getDefaultInstance();
      }
      /**
       * <pre>
       * Конфликт версий
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
       */
      private void setConflict(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Конфликт версий
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
       */
      private void mergeConflict(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict.getDefaultInstance()) {
          reason_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Конфликт версий
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
       */
      private void clearConflict() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

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

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

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


        /**
         * <pre>
         * Конфликт версий
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
         */
        @java.lang.Override
        public boolean hasConflict() {
          return instance.hasConflict();
        }
        /**
         * <pre>
         * Конфликт версий
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict getConflict() {
          return instance.getConflict();
        }
        /**
         * <pre>
         * Конфликт версий
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
         */
        public Builder setConflict(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict value) {
          copyOnWrite();
          instance.setConflict(value);
          return this;
        }
        /**
         * <pre>
         * Конфликт версий
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
         */
        public Builder setConflict(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict.Builder builderForValue) {
          copyOnWrite();
          instance.setConflict(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Конфликт версий
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
         */
        public Builder mergeConflict(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict value) {
          copyOnWrite();
          instance.mergeConflict(value);
          return this;
        }
        /**
         * <pre>
         * Конфликт версий
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplate.SavingError.Conflict conflict = 1;</code>
         */
        public Builder clearConflict() {
          copyOnWrite();
          instance.clearConflict();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplate.SavingError)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.Conflict.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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    public static final int ID_FIELD_NUMBER = 1;
    private java.lang.String id_;
    /**
     * <pre>
     * Идентификатор.
     * Если не передан создаётся сервером.
     * # Тип: 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 TEMPLATE_HEADER_FIELD_NUMBER = 2;
    private java.lang.String templateHeader_;
    /**
     * <pre>
     * Заголовок шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..128
     * </pre>
     *
     * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The templateHeader.
     */
    @java.lang.Override
    public java.lang.String getTemplateHeader() {
      return templateHeader_;
    }
    /**
     * <pre>
     * Заголовок шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..128
     * </pre>
     *
     * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for templateHeader.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTemplateHeaderBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(templateHeader_);
    }
    /**
     * <pre>
     * Заголовок шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..128
     * </pre>
     *
     * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The templateHeader to set.
     */
    private void setTemplateHeader(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      templateHeader_ = value;
    }
    /**
     * <pre>
     * Заголовок шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..128
     * </pre>
     *
     * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearTemplateHeader() {

      templateHeader_ = getDefaultInstance().getTemplateHeader();
    }
    /**
     * <pre>
     * Заголовок шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..128
     * </pre>
     *
     * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for templateHeader to set.
     */
    private void setTemplateHeaderBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      templateHeader_ = value.toStringUtf8();

    }

    public static final int TEMPLATE_TEXT_FIELD_NUMBER = 3;
    private java.lang.String templateText_;
    /**
     * <pre>
     * Тело шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..512
     * </pre>
     *
     * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The templateText.
     */
    @java.lang.Override
    public java.lang.String getTemplateText() {
      return templateText_;
    }
    /**
     * <pre>
     * Тело шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..512
     * </pre>
     *
     * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for templateText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTemplateTextBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(templateText_);
    }
    /**
     * <pre>
     * Тело шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..512
     * </pre>
     *
     * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The templateText to set.
     */
    private void setTemplateText(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      templateText_ = value;
    }
    /**
     * <pre>
     * Тело шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..512
     * </pre>
     *
     * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearTemplateText() {

      templateText_ = getDefaultInstance().getTemplateText();
    }
    /**
     * <pre>
     * Тело шаблона.
     * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
     * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
     * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
     * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
     * # Диапазон: 3..512
     * </pre>
     *
     * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for templateText to set.
     */
    private void setTemplateTextBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      templateText_ = value.toStringUtf8();

    }

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

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

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

    }

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

      }
    /**
     * <pre>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * При изменении должен совпадать со значением из БД.
     * Является версией объекта.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 5;</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>
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * При изменении должен совпадать со значением из БД.
     * Является версией объекта.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp changed_at = 5;</code>
     */
    private void clearChangedAt() {  changedAt_ = null;

    }

    public static final int DELETED_AT_FIELD_NUMBER = 6;
    private com.google.protobuf.Timestamp deletedAt_;
    /**
     * <pre>
     * Дата удаления.
     * # Тип: DateTime?
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public boolean hasDeletedAt() {
      return deletedAt_ != null;
    }
    /**
     * <pre>
     * Дата удаления.
     * # Тип: DateTime?
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getDeletedAt() {
      return deletedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : deletedAt_;
    }
    /**
     * <pre>
     * Дата удаления.
     * # Тип: DateTime?
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void setDeletedAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  deletedAt_ = value;

      }
    /**
     * <pre>
     * Дата удаления.
     * # Тип: DateTime?
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDeletedAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  if (deletedAt_ != null &&
          deletedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
        deletedAt_ =
          com.google.protobuf.Timestamp.newBuilder(deletedAt_).mergeFrom(value).buildPartial();
      } else {
        deletedAt_ = value;
      }

    }
    /**
     * <pre>
     * Дата удаления.
     * # Тип: DateTime?
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private void clearDeletedAt() {  deletedAt_ = null;

    }

    public static final int TITLE_FIELD_NUMBER = 7;
    private java.lang.String title_;
    /**
     * <pre>
     * Системное наименование.
     * # Диапазон: 3..256
     * </pre>
     *
     * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      return title_;
    }
    /**
     * <pre>
     * Системное наименование.
     * # Диапазон: 3..256
     * </pre>
     *
     * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(title_);
    }
    /**
     * <pre>
     * Системное наименование.
     * # Диапазон: 3..256
     * </pre>
     *
     * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The title to set.
     */
    private void setTitle(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      title_ = value;
    }
    /**
     * <pre>
     * Системное наименование.
     * # Диапазон: 3..256
     * </pre>
     *
     * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearTitle() {

      title_ = getDefaultInstance().getTitle();
    }
    /**
     * <pre>
     * Системное наименование.
     * # Диапазон: 3..256
     * </pre>
     *
     * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for title to set.
     */
    private void setTitleBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      title_ = value.toStringUtf8();

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Шаблон уведомления.
     * # Описание модели
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplate}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.NotificationTemplate)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.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>
       * Заголовок шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..128
       * </pre>
       *
       * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The templateHeader.
       */
      @java.lang.Override
      public java.lang.String getTemplateHeader() {
        return instance.getTemplateHeader();
      }
      /**
       * <pre>
       * Заголовок шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..128
       * </pre>
       *
       * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for templateHeader.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTemplateHeaderBytes() {
        return instance.getTemplateHeaderBytes();
      }
      /**
       * <pre>
       * Заголовок шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..128
       * </pre>
       *
       * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The templateHeader to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateHeader(
          java.lang.String value) {
        copyOnWrite();
        instance.setTemplateHeader(value);
        return this;
      }
      /**
       * <pre>
       * Заголовок шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..128
       * </pre>
       *
       * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearTemplateHeader() {
        copyOnWrite();
        instance.clearTemplateHeader();
        return this;
      }
      /**
       * <pre>
       * Заголовок шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..128
       * </pre>
       *
       * <code>string template_header = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for templateHeader to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateHeaderBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTemplateHeaderBytes(value);
        return this;
      }

      /**
       * <pre>
       * Тело шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..512
       * </pre>
       *
       * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The templateText.
       */
      @java.lang.Override
      public java.lang.String getTemplateText() {
        return instance.getTemplateText();
      }
      /**
       * <pre>
       * Тело шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..512
       * </pre>
       *
       * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for templateText.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTemplateTextBytes() {
        return instance.getTemplateTextBytes();
      }
      /**
       * <pre>
       * Тело шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..512
       * </pre>
       *
       * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The templateText to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateText(
          java.lang.String value) {
        copyOnWrite();
        instance.setTemplateText(value);
        return this;
      }
      /**
       * <pre>
       * Тело шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..512
       * </pre>
       *
       * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearTemplateText() {
        copyOnWrite();
        instance.clearTemplateText();
        return this;
      }
      /**
       * <pre>
       * Тело шаблона.
       * Поддерживает mustache теги в формате: {{название переменной|тип данных}}.
       * Название переменной в теге может содержать латинские буквы (в верхнем или нижнем регистре), цифры и символ "_".
       * Тип данных может быть указан в верхнем или нижнем регистре, пробелы не допускаются, допустимые типы данных указаны в таблице.
       * Символы "{" и "}" являются служебными и могут использоваться только для формирования Mustache тегов.
       * # Диапазон: 3..512
       * </pre>
       *
       * <code>string template_text = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for templateText to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateTextBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTemplateTextBytes(value);
        return this;
      }

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

      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * При изменении должен совпадать со значением из БД.
       * Является версией объекта.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 5;</code>
       */
      @java.lang.Override
      public boolean hasChangedAt() {
        return instance.hasChangedAt();
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * При изменении должен совпадать со значением из БД.
       * Является версией объекта.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 5;</code>
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getChangedAt() {
        return instance.getChangedAt();
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * При изменении должен совпадать со значением из БД.
       * Является версией объекта.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 5;</code>
       */
      public Builder setChangedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.setChangedAt(value);
        return this;
        }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * При изменении должен совпадать со значением из БД.
       * Является версией объекта.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 5;</code>
       */
      public Builder setChangedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        copyOnWrite();
        instance.setChangedAt(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * При изменении должен совпадать со значением из БД.
       * Является версией объекта.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 5;</code>
       */
      public Builder mergeChangedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.mergeChangedAt(value);
        return this;
      }
      /**
       * <pre>
       * Дата последнего изменения.
       * Заполняется и обновляется сервером.
       * При изменении должен совпадать со значением из БД.
       * Является версией объекта.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp changed_at = 5;</code>
       */
      public Builder clearChangedAt() {  copyOnWrite();
        instance.clearChangedAt();
        return this;
      }

      /**
       * <pre>
       * Дата удаления.
       * # Тип: DateTime?
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      @java.lang.Override
      public boolean hasDeletedAt() {
        return instance.hasDeletedAt();
      }
      /**
       * <pre>
       * Дата удаления.
       * # Тип: DateTime?
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getDeletedAt() {
        return instance.getDeletedAt();
      }
      /**
       * <pre>
       * Дата удаления.
       * # Тип: DateTime?
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder setDeletedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.setDeletedAt(value);
        return this;
        }
      /**
       * <pre>
       * Дата удаления.
       * # Тип: DateTime?
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder setDeletedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        copyOnWrite();
        instance.setDeletedAt(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Дата удаления.
       * # Тип: DateTime?
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder mergeDeletedAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.mergeDeletedAt(value);
        return this;
      }
      /**
       * <pre>
       * Дата удаления.
       * # Тип: DateTime?
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       */
      public Builder clearDeletedAt() {  copyOnWrite();
        instance.clearDeletedAt();
        return this;
      }

      /**
       * <pre>
       * Системное наименование.
       * # Диапазон: 3..256
       * </pre>
       *
       * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The title.
       */
      @java.lang.Override
      public java.lang.String getTitle() {
        return instance.getTitle();
      }
      /**
       * <pre>
       * Системное наименование.
       * # Диапазон: 3..256
       * </pre>
       *
       * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for title.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTitleBytes() {
        return instance.getTitleBytes();
      }
      /**
       * <pre>
       * Системное наименование.
       * # Диапазон: 3..256
       * </pre>
       *
       * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The title to set.
       * @return This builder for chaining.
       */
      public Builder setTitle(
          java.lang.String value) {
        copyOnWrite();
        instance.setTitle(value);
        return this;
      }
      /**
       * <pre>
       * Системное наименование.
       * # Диапазон: 3..256
       * </pre>
       *
       * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        copyOnWrite();
        instance.clearTitle();
        return this;
      }
      /**
       * <pre>
       * Системное наименование.
       * # Диапазон: 3..256
       * </pre>
       *
       * <code>string title = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for title to set.
       * @return This builder for chaining.
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTitleBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplate)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "templateHeader_",
              "templateText_",
              "createdAt_",
              "changedAt_",
              "deletedAt_",
              "title_",
            };
            java.lang.String info =
                "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                "\u0003\u0208\u0004\t\u0005\t\u0006\t\u0007\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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate>(
                        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.multiapp.v1.NotificationTemplate)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate DEFAULT_INSTANCE;
    static {
      NotificationTemplate defaultInstance = new NotificationTemplate();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        NotificationTemplate.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface NotificationTemplatePartnerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplatePartner)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор шаблона уведомления.
     * # Тип: Guid
     * </pre>
     *
     * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The notificationTemplateId.
     */
    java.lang.String getNotificationTemplateId();
    /**
     * <pre>
     * Идентификатор шаблона уведомления.
     * # Тип: Guid
     * </pre>
     *
     * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for notificationTemplateId.
     */
    com.google.protobuf.ByteString
        getNotificationTemplateIdBytes();

    /**
     * <pre>
     * Идентификатор партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>string partner_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The partnerId.
     */
    java.lang.String getPartnerId();
    /**
     * <pre>
     * Идентификатор партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>string partner_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for partnerId.
     */
    com.google.protobuf.ByteString
        getPartnerIdBytes();
  }
  /**
   * <pre>
   * Связь шаблона уведомлений и партнера.
   * # Описание модели
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePartner}
   */
  public  static final class NotificationTemplatePartner extends
      com.google.protobuf.GeneratedMessageLite<
          NotificationTemplatePartner, NotificationTemplatePartner.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplatePartner)
      NotificationTemplatePartnerOrBuilder {
    private NotificationTemplatePartner() {
      notificationTemplateId_ = "";
      partnerId_ = "";
    }
    public interface SavingErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
       * @return Whether the partnerIsDeleted field is set.
       */
      boolean hasPartnerIsDeleted();
      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
       * @return The partnerIsDeleted.
       */
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted getPartnerIsDeleted();

      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
       * @return Whether the templateIsDeleted field is set.
       */
      boolean hasTemplateIsDeleted();
      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
       * @return The templateIsDeleted.
       */
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted getTemplateIsDeleted();

      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка сохранения.
     * Эти проверки выполняются при работе с базой данных и сторонними сервисами
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePartner.SavingError}
     */
    public  static final class SavingError extends
        com.google.protobuf.GeneratedMessageLite<
            SavingError, SavingError.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError)
        SavingErrorOrBuilder {
      private SavingError() {
      }
      public interface PartnerIsDeletedOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted}
       */
      public  static final class PartnerIsDeleted extends
          com.google.protobuf.GeneratedMessageLite<
              PartnerIsDeleted, PartnerIsDeleted.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted)
          PartnerIsDeletedOrBuilder {
        private PartnerIsDeleted() {
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Партнер удален
         * </pre>
         *
         * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted)
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeletedOrBuilder {
          // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted)
        }
        @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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted();
            }
            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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted> parser = PARSER;
              if (parser == null) {
                synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted>(
                            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.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted)
        private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted DEFAULT_INSTANCE;
        static {
          PartnerIsDeleted defaultInstance = new PartnerIsDeleted();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            PartnerIsDeleted.class, defaultInstance);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      public interface TemplateIsDeletedOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted}
       */
      public  static final class TemplateIsDeleted extends
          com.google.protobuf.GeneratedMessageLite<
              TemplateIsDeleted, TemplateIsDeleted.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted)
          TemplateIsDeletedOrBuilder {
        private TemplateIsDeleted() {
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Шаблон удален
         * </pre>
         *
         * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted)
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeletedOrBuilder {
          // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted)
        }
        @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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted();
            }
            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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted> parser = PARSER;
              if (parser == null) {
                synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted>(
                            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.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted)
        private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted DEFAULT_INSTANCE;
        static {
          TemplateIsDeleted defaultInstance = new TemplateIsDeleted();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            TemplateIsDeleted.class, defaultInstance);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        PARTNER_IS_DELETED(1),
        TEMPLATE_IS_DELETED(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 PARTNER_IS_DELETED;
            case 2: return TEMPLATE_IS_DELETED;
            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 PARTNER_IS_DELETED_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
       */
      @java.lang.Override
      public boolean hasPartnerIsDeleted() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted getPartnerIsDeleted() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted) reason_;
        }
        return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted.getDefaultInstance();
      }
      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
       */
      private void setPartnerIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
       */
      private void mergePartnerIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted.getDefaultInstance()) {
          reason_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Партнер удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
       */
      private void clearPartnerIsDeleted() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static final int TEMPLATE_IS_DELETED_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
       */
      @java.lang.Override
      public boolean hasTemplateIsDeleted() {
        return reasonCase_ == 2;
      }
      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted getTemplateIsDeleted() {
        if (reasonCase_ == 2) {
           return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted) reason_;
        }
        return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted.getDefaultInstance();
      }
      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
       */
      private void setTemplateIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
       */
      private void mergeTemplateIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted value) {
        value.getClass();
  if (reasonCase_ == 2 &&
            reason_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted.getDefaultInstance()) {
          reason_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 2;
      }
      /**
       * <pre>
       * Шаблон удален
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
       */
      private void clearTemplateIsDeleted() {
        if (reasonCase_ == 2) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

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

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

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


        /**
         * <pre>
         * Партнер удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
         */
        @java.lang.Override
        public boolean hasPartnerIsDeleted() {
          return instance.hasPartnerIsDeleted();
        }
        /**
         * <pre>
         * Партнер удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted getPartnerIsDeleted() {
          return instance.getPartnerIsDeleted();
        }
        /**
         * <pre>
         * Партнер удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
         */
        public Builder setPartnerIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted value) {
          copyOnWrite();
          instance.setPartnerIsDeleted(value);
          return this;
        }
        /**
         * <pre>
         * Партнер удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
         */
        public Builder setPartnerIsDeleted(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted.Builder builderForValue) {
          copyOnWrite();
          instance.setPartnerIsDeleted(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Партнер удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
         */
        public Builder mergePartnerIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted value) {
          copyOnWrite();
          instance.mergePartnerIsDeleted(value);
          return this;
        }
        /**
         * <pre>
         * Партнер удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.PartnerIsDeleted partner_is_deleted = 1;</code>
         */
        public Builder clearPartnerIsDeleted() {
          copyOnWrite();
          instance.clearPartnerIsDeleted();
          return this;
        }

        /**
         * <pre>
         * Шаблон удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
         */
        @java.lang.Override
        public boolean hasTemplateIsDeleted() {
          return instance.hasTemplateIsDeleted();
        }
        /**
         * <pre>
         * Шаблон удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted getTemplateIsDeleted() {
          return instance.getTemplateIsDeleted();
        }
        /**
         * <pre>
         * Шаблон удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
         */
        public Builder setTemplateIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted value) {
          copyOnWrite();
          instance.setTemplateIsDeleted(value);
          return this;
        }
        /**
         * <pre>
         * Шаблон удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
         */
        public Builder setTemplateIsDeleted(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted.Builder builderForValue) {
          copyOnWrite();
          instance.setTemplateIsDeleted(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Шаблон удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
         */
        public Builder mergeTemplateIsDeleted(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted value) {
          copyOnWrite();
          instance.mergeTemplateIsDeleted(value);
          return this;
        }
        /**
         * <pre>
         * Шаблон удален
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.NotificationTemplatePartner.SavingError.TemplateIsDeleted template_is_deleted = 2;</code>
         */
        public Builder clearTemplateIsDeleted() {
          copyOnWrite();
          instance.clearTemplateIsDeleted();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplatePartner.SavingError)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.PartnerIsDeleted.class,
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.TemplateIsDeleted.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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    public static final int NOTIFICATION_TEMPLATE_ID_FIELD_NUMBER = 1;
    private java.lang.String notificationTemplateId_;
    /**
     * <pre>
     * Идентификатор шаблона уведомления.
     * # Тип: Guid
     * </pre>
     *
     * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The notificationTemplateId.
     */
    @java.lang.Override
    public java.lang.String getNotificationTemplateId() {
      return notificationTemplateId_;
    }
    /**
     * <pre>
     * Идентификатор шаблона уведомления.
     * # Тип: Guid
     * </pre>
     *
     * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for notificationTemplateId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNotificationTemplateIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(notificationTemplateId_);
    }
    /**
     * <pre>
     * Идентификатор шаблона уведомления.
     * # Тип: Guid
     * </pre>
     *
     * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The notificationTemplateId to set.
     */
    private void setNotificationTemplateId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      notificationTemplateId_ = value;
    }
    /**
     * <pre>
     * Идентификатор шаблона уведомления.
     * # Тип: Guid
     * </pre>
     *
     * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearNotificationTemplateId() {

      notificationTemplateId_ = getDefaultInstance().getNotificationTemplateId();
    }
    /**
     * <pre>
     * Идентификатор шаблона уведомления.
     * # Тип: Guid
     * </pre>
     *
     * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for notificationTemplateId to set.
     */
    private void setNotificationTemplateIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      notificationTemplateId_ = value.toStringUtf8();

    }

    public static final int PARTNER_ID_FIELD_NUMBER = 2;
    private java.lang.String partnerId_;
    /**
     * <pre>
     * Идентификатор партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>string partner_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The partnerId.
     */
    @java.lang.Override
    public java.lang.String getPartnerId() {
      return partnerId_;
    }
    /**
     * <pre>
     * Идентификатор партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>string partner_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for partnerId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPartnerIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(partnerId_);
    }
    /**
     * <pre>
     * Идентификатор партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>string partner_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The partnerId to set.
     */
    private void setPartnerId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      partnerId_ = value;
    }
    /**
     * <pre>
     * Идентификатор партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>string partner_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearPartnerId() {

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

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Связь шаблона уведомлений и партнера.
     * # Описание модели
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePartner}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.NotificationTemplatePartner)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartnerOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор шаблона уведомления.
       * # Тип: Guid
       * </pre>
       *
       * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The notificationTemplateId.
       */
      @java.lang.Override
      public java.lang.String getNotificationTemplateId() {
        return instance.getNotificationTemplateId();
      }
      /**
       * <pre>
       * Идентификатор шаблона уведомления.
       * # Тип: Guid
       * </pre>
       *
       * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for notificationTemplateId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNotificationTemplateIdBytes() {
        return instance.getNotificationTemplateIdBytes();
      }
      /**
       * <pre>
       * Идентификатор шаблона уведомления.
       * # Тип: Guid
       * </pre>
       *
       * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The notificationTemplateId to set.
       * @return This builder for chaining.
       */
      public Builder setNotificationTemplateId(
          java.lang.String value) {
        copyOnWrite();
        instance.setNotificationTemplateId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор шаблона уведомления.
       * # Тип: Guid
       * </pre>
       *
       * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearNotificationTemplateId() {
        copyOnWrite();
        instance.clearNotificationTemplateId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор шаблона уведомления.
       * # Тип: Guid
       * </pre>
       *
       * <code>string notification_template_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for notificationTemplateId to set.
       * @return This builder for chaining.
       */
      public Builder setNotificationTemplateIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setNotificationTemplateIdBytes(value);
        return this;
      }

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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplatePartner)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "notificationTemplateId_",
              "partnerId_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner>(
                        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.multiapp.v1.NotificationTemplatePartner)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner DEFAULT_INSTANCE;
    static {
      NotificationTemplatePartner defaultInstance = new NotificationTemplatePartner();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        NotificationTemplatePartner.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostNotificationTemplateRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PostNotificationTemplateRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Приложение
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Приложение
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The data.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData();
  }
  /**
   * <pre>
   * Запрос сохранения приложения
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateRequest}
   */
  public  static final class PostNotificationTemplateRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PostNotificationTemplateRequest, PostNotificationTemplateRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.PostNotificationTemplateRequest)
      PostNotificationTemplateRequestOrBuilder {
    private PostNotificationTemplateRequest() {
    }
    public static final int DATA_FIELD_NUMBER = 1;
    private ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate data_;
    /**
     * <pre>
     * Приложение
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return data_ != null;
    }
    /**
     * <pre>
     * Приложение
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
      return data_ == null ? ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance() : data_;
    }
    /**
     * <pre>
     * Приложение
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  data_ = value;

      }
    /**
     * <pre>
     * Приложение
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  if (data_ != null &&
          data_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance()) {
        data_ =
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.newBuilder(data_).mergeFrom(value).buildPartial();
      } else {
        data_ = value;
      }

    }
    /**
     * <pre>
     * Приложение
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearData() {  data_ = null;

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос сохранения приложения
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PostNotificationTemplateRequest)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequestOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Приложение
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Приложение
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Приложение
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.setData(value);
        return this;
        }
      /**
       * <pre>
       * Приложение
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setData(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Приложение
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Приложение
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearData() {  copyOnWrite();
        instance.clearData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PostNotificationTemplateRequest)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "data_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest>(
                        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.multiapp.v1.PostNotificationTemplateRequest)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest DEFAULT_INSTANCE;
    static {
      PostNotificationTemplateRequest defaultInstance = new PostNotificationTemplateRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PostNotificationTemplateRequest.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostNotificationTemplateResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PostNotificationTemplateResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     * @return The data.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData();

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

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

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

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

      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
       * @return Whether the incorrectDataType field is set.
       */
      boolean hasIncorrectDataType();
      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
       * @return The incorrectDataType.
       */
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError getIncorrectDataType();

      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
       * @return Whether the incorrectVariableNameError field is set.
       */
      boolean hasIncorrectVariableNameError();
      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
       * @return The incorrectVariableNameError.
       */
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError getIncorrectVariableNameError();

      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
       * @return Whether the incorrectTagFormatError field is set.
       */
      boolean hasIncorrectTagFormatError();
      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
       * @return The incorrectTagFormatError.
       */
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError getIncorrectTagFormatError();

      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса сохранения шаблона уведомления
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error}
     */
    public  static final class Error extends
        com.google.protobuf.GeneratedMessageLite<
            Error, Error.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error)
        ErrorOrBuilder {
      private Error() {
      }
      public interface IncorrectDataTypeErrorOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне.
       * Список допустимых типов данных:
       * - Number;
       * - Date;
       * - Phone;
       * - Time
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError}
       */
      public  static final class IncorrectDataTypeError extends
          com.google.protobuf.GeneratedMessageLite<
              IncorrectDataTypeError, IncorrectDataTypeError.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError)
          IncorrectDataTypeErrorOrBuilder {
        private IncorrectDataTypeError() {
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Некорректный тип данных для переменной в шаблоне.
         * Список допустимых типов данных:
         * - Number;
         * - Date;
         * - Phone;
         * - Time
         * </pre>
         *
         * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError)
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeErrorOrBuilder {
          // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError)
        }
        @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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError();
            }
            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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError> parser = PARSER;
              if (parser == null) {
                synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError>(
                            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.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError)
        private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError DEFAULT_INSTANCE;
        static {
          IncorrectDataTypeError defaultInstance = new IncorrectDataTypeError();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            IncorrectDataTypeError.class, defaultInstance);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      public interface IncorrectVariableNameErrorOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError}
       */
      public  static final class IncorrectVariableNameError extends
          com.google.protobuf.GeneratedMessageLite<
              IncorrectVariableNameError, IncorrectVariableNameError.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError)
          IncorrectVariableNameErrorOrBuilder {
        private IncorrectVariableNameError() {
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Некорректное наименование переменной в шаблоне
         * </pre>
         *
         * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError)
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameErrorOrBuilder {
          // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError)
        }
        @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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError();
            }
            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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError> parser = PARSER;
              if (parser == null) {
                synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError>(
                            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.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError)
        private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError DEFAULT_INSTANCE;
        static {
          IncorrectVariableNameError defaultInstance = new IncorrectVariableNameError();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            IncorrectVariableNameError.class, defaultInstance);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      public interface IncorrectTagFormatErrorOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError}
       */
      public  static final class IncorrectTagFormatError extends
          com.google.protobuf.GeneratedMessageLite<
              IncorrectTagFormatError, IncorrectTagFormatError.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError)
          IncorrectTagFormatErrorOrBuilder {
        private IncorrectTagFormatError() {
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Некорректный формат Mustache тегов
         * </pre>
         *
         * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError)
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatErrorOrBuilder {
          // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


          // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError)
        }
        @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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError();
            }
            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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError> parser = PARSER;
              if (parser == null) {
                synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError>(
                            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.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError)
        private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError DEFAULT_INSTANCE;
        static {
          IncorrectTagFormatError defaultInstance = new IncorrectTagFormatError();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            IncorrectTagFormatError.class, defaultInstance);
        }

        public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        VALIDATION(1),
        SAVING(2),
        INCORRECT_DATA_TYPE(3),
        INCORRECT_VARIABLE_NAME_ERROR(4),
        INCORRECT_TAG_FORMAT_ERROR(5),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ReasonCase valueOf(int value) {
          return forNumber(value);
        }

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

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

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

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

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

      public static final int INCORRECT_DATA_TYPE_FIELD_NUMBER = 3;
      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
       */
      @java.lang.Override
      public boolean hasIncorrectDataType() {
        return reasonCase_ == 3;
      }
      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError getIncorrectDataType() {
        if (reasonCase_ == 3) {
           return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError) reason_;
        }
        return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError.getDefaultInstance();
      }
      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
       */
      private void setIncorrectDataType(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 3;
      }
      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
       */
      private void mergeIncorrectDataType(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError value) {
        value.getClass();
  if (reasonCase_ == 3 &&
            reason_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError.getDefaultInstance()) {
          reason_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 3;
      }
      /**
       * <pre>
       * Некорректный тип данных для переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
       */
      private void clearIncorrectDataType() {
        if (reasonCase_ == 3) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static final int INCORRECT_VARIABLE_NAME_ERROR_FIELD_NUMBER = 4;
      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
       */
      @java.lang.Override
      public boolean hasIncorrectVariableNameError() {
        return reasonCase_ == 4;
      }
      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError getIncorrectVariableNameError() {
        if (reasonCase_ == 4) {
           return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError) reason_;
        }
        return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError.getDefaultInstance();
      }
      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
       */
      private void setIncorrectVariableNameError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 4;
      }
      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
       */
      private void mergeIncorrectVariableNameError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError value) {
        value.getClass();
  if (reasonCase_ == 4 &&
            reason_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError.getDefaultInstance()) {
          reason_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 4;
      }
      /**
       * <pre>
       * Некорректное наименование переменной в шаблоне
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
       */
      private void clearIncorrectVariableNameError() {
        if (reasonCase_ == 4) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static final int INCORRECT_TAG_FORMAT_ERROR_FIELD_NUMBER = 5;
      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
       */
      @java.lang.Override
      public boolean hasIncorrectTagFormatError() {
        return reasonCase_ == 5;
      }
      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError getIncorrectTagFormatError() {
        if (reasonCase_ == 5) {
           return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError) reason_;
        }
        return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError.getDefaultInstance();
      }
      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
       */
      private void setIncorrectTagFormatError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 5;
      }
      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
       */
      private void mergeIncorrectTagFormatError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError value) {
        value.getClass();
  if (reasonCase_ == 5 &&
            reason_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError.getDefaultInstance()) {
          reason_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 5;
      }
      /**
       * <pre>
       * Некорректный формат Mustache тегов
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
       */
      private void clearIncorrectTagFormatError() {
        if (reasonCase_ == 5) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса сохранения шаблона уведомления
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse.Error)
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

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

        /**
         * <pre>
         * Некорректный тип данных для переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
         */
        @java.lang.Override
        public boolean hasIncorrectDataType() {
          return instance.hasIncorrectDataType();
        }
        /**
         * <pre>
         * Некорректный тип данных для переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError getIncorrectDataType() {
          return instance.getIncorrectDataType();
        }
        /**
         * <pre>
         * Некорректный тип данных для переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
         */
        public Builder setIncorrectDataType(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError value) {
          copyOnWrite();
          instance.setIncorrectDataType(value);
          return this;
        }
        /**
         * <pre>
         * Некорректный тип данных для переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
         */
        public Builder setIncorrectDataType(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError.Builder builderForValue) {
          copyOnWrite();
          instance.setIncorrectDataType(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Некорректный тип данных для переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
         */
        public Builder mergeIncorrectDataType(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError value) {
          copyOnWrite();
          instance.mergeIncorrectDataType(value);
          return this;
        }
        /**
         * <pre>
         * Некорректный тип данных для переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectDataTypeError incorrect_data_type = 3;</code>
         */
        public Builder clearIncorrectDataType() {
          copyOnWrite();
          instance.clearIncorrectDataType();
          return this;
        }

        /**
         * <pre>
         * Некорректное наименование переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
         */
        @java.lang.Override
        public boolean hasIncorrectVariableNameError() {
          return instance.hasIncorrectVariableNameError();
        }
        /**
         * <pre>
         * Некорректное наименование переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError getIncorrectVariableNameError() {
          return instance.getIncorrectVariableNameError();
        }
        /**
         * <pre>
         * Некорректное наименование переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
         */
        public Builder setIncorrectVariableNameError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError value) {
          copyOnWrite();
          instance.setIncorrectVariableNameError(value);
          return this;
        }
        /**
         * <pre>
         * Некорректное наименование переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
         */
        public Builder setIncorrectVariableNameError(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError.Builder builderForValue) {
          copyOnWrite();
          instance.setIncorrectVariableNameError(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Некорректное наименование переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
         */
        public Builder mergeIncorrectVariableNameError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError value) {
          copyOnWrite();
          instance.mergeIncorrectVariableNameError(value);
          return this;
        }
        /**
         * <pre>
         * Некорректное наименование переменной в шаблоне
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectVariableNameError incorrect_variable_name_error = 4;</code>
         */
        public Builder clearIncorrectVariableNameError() {
          copyOnWrite();
          instance.clearIncorrectVariableNameError();
          return this;
        }

        /**
         * <pre>
         * Некорректный формат Mustache тегов
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
         */
        @java.lang.Override
        public boolean hasIncorrectTagFormatError() {
          return instance.hasIncorrectTagFormatError();
        }
        /**
         * <pre>
         * Некорректный формат Mustache тегов
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError getIncorrectTagFormatError() {
          return instance.getIncorrectTagFormatError();
        }
        /**
         * <pre>
         * Некорректный формат Mustache тегов
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
         */
        public Builder setIncorrectTagFormatError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError value) {
          copyOnWrite();
          instance.setIncorrectTagFormatError(value);
          return this;
        }
        /**
         * <pre>
         * Некорректный формат Mustache тегов
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
         */
        public Builder setIncorrectTagFormatError(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError.Builder builderForValue) {
          copyOnWrite();
          instance.setIncorrectTagFormatError(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Некорректный формат Mustache тегов
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
         */
        public Builder mergeIncorrectTagFormatError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError value) {
          copyOnWrite();
          instance.mergeIncorrectTagFormatError(value);
          return this;
        }
        /**
         * <pre>
         * Некорректный формат Mustache тегов
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error.IncorrectTagFormatError incorrect_tag_format_error = 5;</code>
         */
        public Builder clearIncorrectTagFormatError() {
          copyOnWrite();
          instance.clearIncorrectTagFormatError();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.class,
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.SavingError.class,
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectDataTypeError.class,
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectVariableNameError.class,
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.IncorrectTagFormatError.class,
              };
              java.lang.String info =
                  "\u0000\u0005\u0001\u0000\u0001\u0005\u0005\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                  "\u0000\u0003<\u0000\u0004<\u0000\u0005<\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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.PostNotificationTemplateResponse.Error)
      private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate) type_;
      }
      return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance();
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    private void setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    private void mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance()) {
        type_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate 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.multiapp.v1.PostNotificationTemplateResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error getError() {
      if (typeCase_ == 2) {
         return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error) type_;
      }
      return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error error = 2;</code>
     */
    private void setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error error = 2;</code>
     */
    private void mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.PostNotificationTemplateResponse.Error error = 2;</code>
     */
    private void clearError() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос сохранения шаблона уведомления
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.PostNotificationTemplateResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PostNotificationTemplateResponse)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponseOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PostNotificationTemplateResponse)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.class,
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse>(
                        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.multiapp.v1.PostNotificationTemplateResponse)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse DEFAULT_INSTANCE;
    static {
      PostNotificationTemplateResponse defaultInstance = new PostNotificationTemplateResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PostNotificationTemplateResponse.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PostNotificationTemplateResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetNotificationTemplateRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.GetNotificationTemplateRequest)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateRequest)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest();
        }
        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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest>(
                        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.multiapp.v1.GetNotificationTemplateRequest)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest DEFAULT_INSTANCE;
    static {
      GetNotificationTemplateRequest defaultInstance = new GetNotificationTemplateRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetNotificationTemplateRequest.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetNotificationTemplateResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.GetNotificationTemplateResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     * @return The data.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData();

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

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

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

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

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

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

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

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса получения шаблона уведомления
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.GetNotificationTemplateResponse.Error)
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.GetNotificationTemplateResponse.Error)
      private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate) type_;
      }
      return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance();
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    private void setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    private void mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance()) {
        type_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate 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.multiapp.v1.GetNotificationTemplateResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error getError() {
      if (typeCase_ == 2) {
         return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error) type_;
      }
      return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateResponse.Error error = 2;</code>
     */
    private void setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateResponse.Error error = 2;</code>
     */
    private void mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateResponse.Error error = 2;</code>
     */
    private void clearError() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос получения шаблона уведомления
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.GetNotificationTemplateResponse)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponseOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateResponse)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.class,
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse>(
                        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.multiapp.v1.GetNotificationTemplateResponse)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse DEFAULT_INSTANCE;
    static {
      GetNotificationTemplateResponse defaultInstance = new GetNotificationTemplateResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetNotificationTemplateResponse.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetNotificationTemplateListRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.GetNotificationTemplateListRequest)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest.PaginationCase getPaginationCase();
  }
  /**
   * <pre>
   * Запрос получения списка шаблонов уведомлений
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateListRequest}
   */
  public  static final class GetNotificationTemplateListRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetNotificationTemplateListRequest, GetNotificationTemplateListRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.GetNotificationTemplateListRequest)
      GetNotificationTemplateListRequestOrBuilder {
    private GetNotificationTemplateListRequest() {
    }
    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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter filter_;
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
     */
    @java.lang.Override
    public boolean hasFilter() {
      return filter_ != null;
    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter getFilter() {
      return filter_ == null ? ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter.getDefaultInstance() : filter_;
    }
    /**
     * <pre>
     * Фильтр
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
     */
    private void setFilter(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter value) {
      value.getClass();
  filter_ = value;

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

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

    }

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

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос получения списка шаблонов уведомлений
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateListRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.GetNotificationTemplateListRequest)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequestOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest.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.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
       */
      @java.lang.Override
      public boolean hasFilter() {
        return instance.hasFilter();
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter getFilter() {
        return instance.getFilter();
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
       */
      public Builder setFilter(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter value) {
        copyOnWrite();
        instance.setFilter(value);
        return this;
        }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
       */
      public Builder setFilter(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter.Builder builderForValue) {
        copyOnWrite();
        instance.setFilter(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
       */
      public Builder mergeFilter(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter value) {
        copyOnWrite();
        instance.mergeFilter(value);
        return this;
      }
      /**
       * <pre>
       * Фильтр
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplateFilter filter = 1;</code>
       */
      public Builder clearFilter() {  copyOnWrite();
        instance.clearFilter();
        return this;
      }

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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateListRequest)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "pagination_",
              "paginationCase_",
              "filter_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest>(
                        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.multiapp.v1.GetNotificationTemplateListRequest)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest DEFAULT_INSTANCE;
    static {
      GetNotificationTemplateListRequest defaultInstance = new GetNotificationTemplateListRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetNotificationTemplateListRequest.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetNotificationTemplateListResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.GetNotificationTemplateListResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     * @return The data.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData();

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

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

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

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

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

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

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

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса получения списка шаблонов уведомлений
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateListResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.GetNotificationTemplateListResponse.Error)
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.GetNotificationTemplateListResponse.Error)
      private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate) type_;
      }
      return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance();
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    private void setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
     */
    private void mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.getDefaultInstance()) {
        type_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Шаблон уведомления
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplate 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.multiapp.v1.GetNotificationTemplateListResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateListResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error getError() {
      if (typeCase_ == 2) {
         return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error) type_;
      }
      return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateListResponse.Error error = 2;</code>
     */
    private void setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateListResponse.Error error = 2;</code>
     */
    private void mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateListResponse.Error error = 2;</code>
     */
    private void clearError() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос получения списка шаблонов уведомлений
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateListResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.GetNotificationTemplateListResponse)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponseOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder setData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Шаблон уведомления
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplate data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateListResponse)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplate.class,
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse>(
                        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.multiapp.v1.GetNotificationTemplateListResponse)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse DEFAULT_INSTANCE;
    static {
      GetNotificationTemplateListResponse defaultInstance = new GetNotificationTemplateListResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetNotificationTemplateListResponse.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateListResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetNotificationTemplateCountRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.GetNotificationTemplateCountRequest)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

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

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateCountRequest)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest();
        }
        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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest>(
                        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.multiapp.v1.GetNotificationTemplateCountRequest)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest DEFAULT_INSTANCE;
    static {
      GetNotificationTemplateCountRequest defaultInstance = new GetNotificationTemplateCountRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetNotificationTemplateCountRequest.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetNotificationTemplateCountResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.GetNotificationTemplateCountResponse)
      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.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
     * @return The error.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error getError();

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

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

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

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

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

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

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса получения количества шаблонов уведомлений
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error)
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.GetNotificationTemplateCountResponse.Error)
      private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error getError() {
      if (typeCase_ == 2) {
         return (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error) type_;
      }
      return ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
     */
    private void setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
     */
    private void mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error.newBuilder((ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
     */
    private void clearError() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse 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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос получения количества шаблонов уведомлений
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.GetNotificationTemplateCountResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.GetNotificationTemplateCountResponse)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponseOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
       */
      public Builder setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
       */
      public Builder setError(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
       */
      public Builder mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.GetNotificationTemplateCountResponse.Error error = 2;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.GetNotificationTemplateCountResponse)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.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.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse>(
                        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.multiapp.v1.GetNotificationTemplateCountResponse)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse DEFAULT_INSTANCE;
    static {
      GetNotificationTemplateCountResponse defaultInstance = new GetNotificationTemplateCountResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetNotificationTemplateCountResponse.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.GetNotificationTemplateCountResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PutNotificationTemplatePartnerAttachRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the notificationTemplatePartner field is set.
     */
    boolean hasNotificationTemplatePartner();
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The notificationTemplatePartner.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner getNotificationTemplatePartner();
  }
  /**
   * <pre>
   * Запрос создания связи шаблона уведомления и партнера
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachRequest}
   */
  public  static final class PutNotificationTemplatePartnerAttachRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PutNotificationTemplatePartnerAttachRequest, PutNotificationTemplatePartnerAttachRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachRequest)
      PutNotificationTemplatePartnerAttachRequestOrBuilder {
    private PutNotificationTemplatePartnerAttachRequest() {
    }
    public static final int NOTIFICATION_TEMPLATE_PARTNER_FIELD_NUMBER = 1;
    private ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner notificationTemplatePartner_;
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public boolean hasNotificationTemplatePartner() {
      return notificationTemplatePartner_ != null;
    }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner getNotificationTemplatePartner() {
      return notificationTemplatePartner_ == null ? ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.getDefaultInstance() : notificationTemplatePartner_;
    }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void setNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
      value.getClass();
  notificationTemplatePartner_ = value;

      }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
      value.getClass();
  if (notificationTemplatePartner_ != null &&
          notificationTemplatePartner_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.getDefaultInstance()) {
        notificationTemplatePartner_ =
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.newBuilder(notificationTemplatePartner_).mergeFrom(value).buildPartial();
      } else {
        notificationTemplatePartner_ = value;
      }

    }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearNotificationTemplatePartner() {  notificationTemplatePartner_ = null;

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasNotificationTemplatePartner() {
        return instance.hasNotificationTemplatePartner();
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner getNotificationTemplatePartner() {
        return instance.getNotificationTemplatePartner();
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
        copyOnWrite();
        instance.setNotificationTemplatePartner(value);
        return this;
        }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setNotificationTemplatePartner(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.Builder builderForValue) {
        copyOnWrite();
        instance.setNotificationTemplatePartner(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
        copyOnWrite();
        instance.mergeNotificationTemplatePartner(value);
        return this;
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearNotificationTemplatePartner() {  copyOnWrite();
        instance.clearNotificationTemplatePartner();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachRequest)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "notificationTemplatePartner_",
            };
            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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest>(
                        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.multiapp.v1.PutNotificationTemplatePartnerAttachRequest)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest DEFAULT_INSTANCE;
    static {
      PutNotificationTemplatePartnerAttachRequest defaultInstance = new PutNotificationTemplatePartnerAttachRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PutNotificationTemplatePartnerAttachRequest.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PutNotificationTemplatePartnerAttachResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

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

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

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

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

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

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

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

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса на создание шаблона уведомления и партнера
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error)
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

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

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.class,
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.SavingError.class,
              };
              java.lang.String info =
                  "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                  "\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error)
      private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

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

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

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

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

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос создания связи шаблона уведомления и партнера
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponseOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.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.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PutNotificationTemplatePartnerAttachResponse)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse>(
                        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.multiapp.v1.PutNotificationTemplatePartnerAttachResponse)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse DEFAULT_INSTANCE;
    static {
      PutNotificationTemplatePartnerAttachResponse defaultInstance = new PutNotificationTemplatePartnerAttachResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PutNotificationTemplatePartnerAttachResponse.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerAttachResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PutNotificationTemplatePartnerDetachRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the notificationTemplatePartner field is set.
     */
    boolean hasNotificationTemplatePartner();
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The notificationTemplatePartner.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner getNotificationTemplatePartner();
  }
  /**
   * <pre>
   * Запрос удаления связи шаблона уведомления и партнера
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachRequest}
   */
  public  static final class PutNotificationTemplatePartnerDetachRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PutNotificationTemplatePartnerDetachRequest, PutNotificationTemplatePartnerDetachRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachRequest)
      PutNotificationTemplatePartnerDetachRequestOrBuilder {
    private PutNotificationTemplatePartnerDetachRequest() {
    }
    public static final int NOTIFICATION_TEMPLATE_PARTNER_FIELD_NUMBER = 1;
    private ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner notificationTemplatePartner_;
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public boolean hasNotificationTemplatePartner() {
      return notificationTemplatePartner_ != null;
    }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner getNotificationTemplatePartner() {
      return notificationTemplatePartner_ == null ? ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.getDefaultInstance() : notificationTemplatePartner_;
    }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void setNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
      value.getClass();
  notificationTemplatePartner_ = value;

      }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
      value.getClass();
  if (notificationTemplatePartner_ != null &&
          notificationTemplatePartner_ != ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.getDefaultInstance()) {
        notificationTemplatePartner_ =
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.newBuilder(notificationTemplatePartner_).mergeFrom(value).buildPartial();
      } else {
        notificationTemplatePartner_ = value;
      }

    }
    /**
     * <pre>
     * Связь шаблона уведомления и партнера
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearNotificationTemplatePartner() {  notificationTemplatePartner_ = null;

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasNotificationTemplatePartner() {
        return instance.hasNotificationTemplatePartner();
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner getNotificationTemplatePartner() {
        return instance.getNotificationTemplatePartner();
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
        copyOnWrite();
        instance.setNotificationTemplatePartner(value);
        return this;
        }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setNotificationTemplatePartner(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner.Builder builderForValue) {
        copyOnWrite();
        instance.setNotificationTemplatePartner(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeNotificationTemplatePartner(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePartner value) {
        copyOnWrite();
        instance.mergeNotificationTemplatePartner(value);
        return this;
      }
      /**
       * <pre>
       * Связь шаблона уведомления и партнера
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePartner notification_template_partner = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearNotificationTemplatePartner() {  copyOnWrite();
        instance.clearNotificationTemplatePartner();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachRequest)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "notificationTemplatePartner_",
            };
            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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest>(
                        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.multiapp.v1.PutNotificationTemplatePartnerDetachRequest)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest DEFAULT_INSTANCE;
    static {
      PutNotificationTemplatePartnerDetachRequest defaultInstance = new PutNotificationTemplatePartnerDetachRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PutNotificationTemplatePartnerDetachRequest.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PutNotificationTemplatePartnerDetachResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

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

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

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

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

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

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса на удаление шаблона уведомления и партнера
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error)
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error)
      private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

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

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

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

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

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse 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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос удаление связи шаблона уведомления и партнера
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponseOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.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.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.PutNotificationTemplatePartnerDetachResponse)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse>(
                        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.multiapp.v1.PutNotificationTemplatePartnerDetachResponse)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse DEFAULT_INSTANCE;
    static {
      PutNotificationTemplatePartnerDetachResponse defaultInstance = new PutNotificationTemplatePartnerDetachResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PutNotificationTemplatePartnerDetachResponse.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.PutNotificationTemplatePartnerDetachResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface DeleteNotificationTemplateRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.DeleteNotificationTemplateRequest)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос на удаление шаблона уведомления
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.DeleteNotificationTemplateRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.DeleteNotificationTemplateRequest)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequestOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


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

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.DeleteNotificationTemplateRequest)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest();
        }
        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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest>(
                        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.multiapp.v1.DeleteNotificationTemplateRequest)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest DEFAULT_INSTANCE;
    static {
      DeleteNotificationTemplateRequest defaultInstance = new DeleteNotificationTemplateRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DeleteNotificationTemplateRequest.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface DeleteNotificationTemplateResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.DeleteNotificationTemplateResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Ошибка при удалении
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <pre>
     * Ошибка при удалении
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
     * @return The error.
     */
    ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error getError();

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

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

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

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

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

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

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

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка удаления шаблона уведомления
       * </pre>
       *
       * Protobuf type {@code keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error)
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.multiapp.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.DeleteNotificationTemplateResponse.Error)
      private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

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

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

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

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

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse 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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос удаления шаблона уведомления
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.DeleteNotificationTemplateResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.DeleteNotificationTemplateResponse)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponseOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.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.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка при удалении
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка при удалении
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
       */
      public Builder setError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка при удалении
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
       */
      public Builder setError(
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка при удалении
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
       */
      public Builder mergeError(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка при удалении
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.DeleteNotificationTemplateResponse.Error error = 1;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.DeleteNotificationTemplateResponse)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse>(
                        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.multiapp.v1.DeleteNotificationTemplateResponse)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse DEFAULT_INSTANCE;
    static {
      DeleteNotificationTemplateResponse defaultInstance = new DeleteNotificationTemplateResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DeleteNotificationTemplateResponse.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.DeleteNotificationTemplateResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface NotificationTemplateFilterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplateFilter)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * По тексту.
     * Если значение не передано то поиск по нему не производится.
     * # Диапазон: 3..64.
     * # Поиск производится по полям:
     * # - Заголовок шаблона;
     * # - Тело шаблона;
     * # - Системное наименование
     * </pre>
     *
     * <code>.google.protobuf.StringValue text = 1;</code>
     * @return Whether the text field is set.
     */
    boolean hasText();
    /**
     * <pre>
     * По тексту.
     * Если значение не передано то поиск по нему не производится.
     * # Диапазон: 3..64.
     * # Поиск производится по полям:
     * # - Заголовок шаблона;
     * # - Тело шаблона;
     * # - Системное наименование
     * </pre>
     *
     * <code>.google.protobuf.StringValue text = 1;</code>
     * @return The text.
     */
    com.google.protobuf.StringValue getText();

    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @return A list containing the partnerIds.
     */
    java.util.List<java.lang.String>
        getPartnerIdsList();
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @return The count of partnerIds.
     */
    int getPartnerIdsCount();
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param index The index of the element to return.
     * @return The partnerIds at the given index.
     */
    java.lang.String getPartnerIds(int index);
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param index The index of the element to return.
     * @return The partnerIds at the given index.
     */
    com.google.protobuf.ByteString
        getPartnerIdsBytes(int index);

    /**
     * <pre>
     * Показывать удаленные
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
     * @return Whether the isShowDeleted field is set.
     */
    boolean hasIsShowDeleted();
    /**
     * <pre>
     * Показывать удаленные
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
     * @return The isShowDeleted.
     */
    com.google.protobuf.BoolValue getIsShowDeleted();
  }
  /**
   * <pre>
   * Фильтр шаблонов уведомлений
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplateFilter}
   */
  public  static final class NotificationTemplateFilter extends
      com.google.protobuf.GeneratedMessageLite<
          NotificationTemplateFilter, NotificationTemplateFilter.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplateFilter)
      NotificationTemplateFilterOrBuilder {
    private NotificationTemplateFilter() {
      partnerIds_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    public static final int TEXT_FIELD_NUMBER = 1;
    private com.google.protobuf.StringValue text_;
    /**
     * <pre>
     * По тексту.
     * Если значение не передано то поиск по нему не производится.
     * # Диапазон: 3..64.
     * # Поиск производится по полям:
     * # - Заголовок шаблона;
     * # - Тело шаблона;
     * # - Системное наименование
     * </pre>
     *
     * <code>.google.protobuf.StringValue text = 1;</code>
     */
    @java.lang.Override
    public boolean hasText() {
      return text_ != null;
    }
    /**
     * <pre>
     * По тексту.
     * Если значение не передано то поиск по нему не производится.
     * # Диапазон: 3..64.
     * # Поиск производится по полям:
     * # - Заголовок шаблона;
     * # - Тело шаблона;
     * # - Системное наименование
     * </pre>
     *
     * <code>.google.protobuf.StringValue text = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getText() {
      return text_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : text_;
    }
    /**
     * <pre>
     * По тексту.
     * Если значение не передано то поиск по нему не производится.
     * # Диапазон: 3..64.
     * # Поиск производится по полям:
     * # - Заголовок шаблона;
     * # - Тело шаблона;
     * # - Системное наименование
     * </pre>
     *
     * <code>.google.protobuf.StringValue text = 1;</code>
     */
    private void setText(com.google.protobuf.StringValue value) {
      value.getClass();
  text_ = value;

      }
    /**
     * <pre>
     * По тексту.
     * Если значение не передано то поиск по нему не производится.
     * # Диапазон: 3..64.
     * # Поиск производится по полям:
     * # - Заголовок шаблона;
     * # - Тело шаблона;
     * # - Системное наименование
     * </pre>
     *
     * <code>.google.protobuf.StringValue text = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeText(com.google.protobuf.StringValue value) {
      value.getClass();
  if (text_ != null &&
          text_ != com.google.protobuf.StringValue.getDefaultInstance()) {
        text_ =
          com.google.protobuf.StringValue.newBuilder(text_).mergeFrom(value).buildPartial();
      } else {
        text_ = value;
      }

    }
    /**
     * <pre>
     * По тексту.
     * Если значение не передано то поиск по нему не производится.
     * # Диапазон: 3..64.
     * # Поиск производится по полям:
     * # - Заголовок шаблона;
     * # - Тело шаблона;
     * # - Системное наименование
     * </pre>
     *
     * <code>.google.protobuf.StringValue text = 1;</code>
     */
    private void clearText() {  text_ = null;

    }

    public static final int PARTNER_IDS_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> partnerIds_;
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @return A list containing the partnerIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getPartnerIdsList() {
      return partnerIds_;
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @return The count of partnerIds.
     */
    @java.lang.Override
    public int getPartnerIdsCount() {
      return partnerIds_.size();
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param index The index of the element to return.
     * @return The partnerIds at the given index.
     */
    @java.lang.Override
    public java.lang.String getPartnerIds(int index) {
      return partnerIds_.get(index);
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the partnerIds at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPartnerIdsBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          partnerIds_.get(index));
    }
    private void ensurePartnerIdsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          partnerIds_;  if (!tmp.isModifiable()) {
        partnerIds_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param index The index to set the value at.
     * @param value The partnerIds to set.
     */
    private void setPartnerIds(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensurePartnerIdsIsMutable();
      partnerIds_.set(index, value);
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param value The partnerIds to add.
     */
    private void addPartnerIds(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensurePartnerIdsIsMutable();
      partnerIds_.add(value);
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param values The partnerIds to add.
     */
    private void addAllPartnerIds(
        java.lang.Iterable<java.lang.String> values) {
      ensurePartnerIdsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, partnerIds_);
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     */
    private void clearPartnerIds() {
      partnerIds_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <pre>
     * По идентификаторам партнера.
     * # Тип: Guid
     * </pre>
     *
     * <code>repeated string partner_ids = 2;</code>
     * @param value The bytes of the partnerIds to add.
     */
    private void addPartnerIdsBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      ensurePartnerIdsIsMutable();
      partnerIds_.add(value.toStringUtf8());
    }

    public static final int IS_SHOW_DELETED_FIELD_NUMBER = 3;
    private com.google.protobuf.BoolValue isShowDeleted_;
    /**
     * <pre>
     * Показывать удаленные
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
     */
    @java.lang.Override
    public boolean hasIsShowDeleted() {
      return isShowDeleted_ != null;
    }
    /**
     * <pre>
     * Показывать удаленные
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getIsShowDeleted() {
      return isShowDeleted_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isShowDeleted_;
    }
    /**
     * <pre>
     * Показывать удаленные
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
     */
    private void setIsShowDeleted(com.google.protobuf.BoolValue value) {
      value.getClass();
  isShowDeleted_ = value;

      }
    /**
     * <pre>
     * Показывать удаленные
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeIsShowDeleted(com.google.protobuf.BoolValue value) {
      value.getClass();
  if (isShowDeleted_ != null &&
          isShowDeleted_ != com.google.protobuf.BoolValue.getDefaultInstance()) {
        isShowDeleted_ =
          com.google.protobuf.BoolValue.newBuilder(isShowDeleted_).mergeFrom(value).buildPartial();
      } else {
        isShowDeleted_ = value;
      }

    }
    /**
     * <pre>
     * Показывать удаленные
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
     */
    private void clearIsShowDeleted() {  isShowDeleted_ = null;

    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Фильтр шаблонов уведомлений
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplateFilter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.NotificationTemplateFilter)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilterOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * По тексту.
       * Если значение не передано то поиск по нему не производится.
       * # Диапазон: 3..64.
       * # Поиск производится по полям:
       * # - Заголовок шаблона;
       * # - Тело шаблона;
       * # - Системное наименование
       * </pre>
       *
       * <code>.google.protobuf.StringValue text = 1;</code>
       */
      @java.lang.Override
      public boolean hasText() {
        return instance.hasText();
      }
      /**
       * <pre>
       * По тексту.
       * Если значение не передано то поиск по нему не производится.
       * # Диапазон: 3..64.
       * # Поиск производится по полям:
       * # - Заголовок шаблона;
       * # - Тело шаблона;
       * # - Системное наименование
       * </pre>
       *
       * <code>.google.protobuf.StringValue text = 1;</code>
       */
      @java.lang.Override
      public com.google.protobuf.StringValue getText() {
        return instance.getText();
      }
      /**
       * <pre>
       * По тексту.
       * Если значение не передано то поиск по нему не производится.
       * # Диапазон: 3..64.
       * # Поиск производится по полям:
       * # - Заголовок шаблона;
       * # - Тело шаблона;
       * # - Системное наименование
       * </pre>
       *
       * <code>.google.protobuf.StringValue text = 1;</code>
       */
      public Builder setText(com.google.protobuf.StringValue value) {
        copyOnWrite();
        instance.setText(value);
        return this;
        }
      /**
       * <pre>
       * По тексту.
       * Если значение не передано то поиск по нему не производится.
       * # Диапазон: 3..64.
       * # Поиск производится по полям:
       * # - Заголовок шаблона;
       * # - Тело шаблона;
       * # - Системное наименование
       * </pre>
       *
       * <code>.google.protobuf.StringValue text = 1;</code>
       */
      public Builder setText(
          com.google.protobuf.StringValue.Builder builderForValue) {
        copyOnWrite();
        instance.setText(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * По тексту.
       * Если значение не передано то поиск по нему не производится.
       * # Диапазон: 3..64.
       * # Поиск производится по полям:
       * # - Заголовок шаблона;
       * # - Тело шаблона;
       * # - Системное наименование
       * </pre>
       *
       * <code>.google.protobuf.StringValue text = 1;</code>
       */
      public Builder mergeText(com.google.protobuf.StringValue value) {
        copyOnWrite();
        instance.mergeText(value);
        return this;
      }
      /**
       * <pre>
       * По тексту.
       * Если значение не передано то поиск по нему не производится.
       * # Диапазон: 3..64.
       * # Поиск производится по полям:
       * # - Заголовок шаблона;
       * # - Тело шаблона;
       * # - Системное наименование
       * </pre>
       *
       * <code>.google.protobuf.StringValue text = 1;</code>
       */
      public Builder clearText() {  copyOnWrite();
        instance.clearText();
        return this;
      }

      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @return A list containing the partnerIds.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getPartnerIdsList() {
        return java.util.Collections.unmodifiableList(
            instance.getPartnerIdsList());
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @return The count of partnerIds.
       */
      @java.lang.Override
      public int getPartnerIdsCount() {
        return instance.getPartnerIdsCount();
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @param index The index of the element to return.
       * @return The partnerIds at the given index.
       */
      @java.lang.Override
      public java.lang.String getPartnerIds(int index) {
        return instance.getPartnerIds(index);
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the partnerIds at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPartnerIdsBytes(int index) {
        return instance.getPartnerIdsBytes(index);
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @param index The index to set the value at.
       * @param value The partnerIds to set.
       * @return This builder for chaining.
       */
      public Builder setPartnerIds(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setPartnerIds(index, value);
        return this;
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @param value The partnerIds to add.
       * @return This builder for chaining.
       */
      public Builder addPartnerIds(
          java.lang.String value) {
        copyOnWrite();
        instance.addPartnerIds(value);
        return this;
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @param values The partnerIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllPartnerIds(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllPartnerIds(values);
        return this;
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartnerIds() {
        copyOnWrite();
        instance.clearPartnerIds();
        return this;
      }
      /**
       * <pre>
       * По идентификаторам партнера.
       * # Тип: Guid
       * </pre>
       *
       * <code>repeated string partner_ids = 2;</code>
       * @param value The bytes of the partnerIds to add.
       * @return This builder for chaining.
       */
      public Builder addPartnerIdsBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addPartnerIdsBytes(value);
        return this;
      }

      /**
       * <pre>
       * Показывать удаленные
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
       */
      @java.lang.Override
      public boolean hasIsShowDeleted() {
        return instance.hasIsShowDeleted();
      }
      /**
       * <pre>
       * Показывать удаленные
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
       */
      @java.lang.Override
      public com.google.protobuf.BoolValue getIsShowDeleted() {
        return instance.getIsShowDeleted();
      }
      /**
       * <pre>
       * Показывать удаленные
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
       */
      public Builder setIsShowDeleted(com.google.protobuf.BoolValue value) {
        copyOnWrite();
        instance.setIsShowDeleted(value);
        return this;
        }
      /**
       * <pre>
       * Показывать удаленные
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
       */
      public Builder setIsShowDeleted(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        copyOnWrite();
        instance.setIsShowDeleted(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Показывать удаленные
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
       */
      public Builder mergeIsShowDeleted(com.google.protobuf.BoolValue value) {
        copyOnWrite();
        instance.mergeIsShowDeleted(value);
        return this;
      }
      /**
       * <pre>
       * Показывать удаленные
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_show_deleted = 3;</code>
       */
      public Builder clearIsShowDeleted() {  copyOnWrite();
        instance.clearIsShowDeleted();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.multiapp.v1.NotificationTemplateFilter)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "text_",
              "partnerIds_",
              "isShowDeleted_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0001\u0000\u0001\t\u0002\u021a" +
                "\u0003\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter>(
                        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.multiapp.v1.NotificationTemplateFilter)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter DEFAULT_INSTANCE;
    static {
      NotificationTemplateFilter defaultInstance = new NotificationTemplateFilter();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        NotificationTemplateFilter.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplateFilter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface NotificationTemplatePagingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.multiapp.v1.NotificationTemplatePaging)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

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

    /**
     * <pre>
     * Сдвиг.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>int32 offset = 4;</code>
     * @return The offset.
     */
    int getOffset();
  }
  /**
   * <pre>
   * Пагинация шаблонов уведомлений
   * </pre>
   *
   * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePaging}
   */
  public  static final class NotificationTemplatePaging extends
      com.google.protobuf.GeneratedMessageLite<
          NotificationTemplatePaging, NotificationTemplatePaging.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.multiapp.v1.NotificationTemplatePaging)
      NotificationTemplatePagingOrBuilder {
    private NotificationTemplatePaging() {
    }
    /**
     * <pre>
     * Справочник типов значений сортировки.
     * # Тип: byte
     * </pre>
     *
     * Protobuf enum {@code keyapis.multiapp.v1.NotificationTemplatePaging.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>CHANGED_AT = 1;</code>
       */
      CHANGED_AT(1),
      /**
       * <pre>
       * Дата создания
       * </pre>
       *
       * <code>CREATED_AT = 2;</code>
       */
      CREATED_AT(2),
      /**
       * <pre>
       * По рангу для поиска по тексту.
       * Применяется когда передано поле для поиска по тексту.
       * В случае если текстовое поле не передано, применяется значение по умолчанию
       * </pre>
       *
       * <code>RANK = 3;</code>
       */
      RANK(3),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>ORDER_BY_TYPE_UNKNOWN = 0;</code>
       */
      public static final int ORDER_BY_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * Дата последнего изменения
       * </pre>
       *
       * <code>CHANGED_AT = 1;</code>
       */
      public static final int CHANGED_AT_VALUE = 1;
      /**
       * <pre>
       * Дата создания
       * </pre>
       *
       * <code>CREATED_AT = 2;</code>
       */
      public static final int CREATED_AT_VALUE = 2;
      /**
       * <pre>
       * По рангу для поиска по тексту.
       * Применяется когда передано поле для поиска по тексту.
       * В случае если текстовое поле не передано, применяется значение по умолчанию
       * </pre>
       *
       * <code>RANK = 3;</code>
       */
      public static final int RANK_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 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 CHANGED_AT;
          case 2: return CREATED_AT;
          case 3: return RANK;
          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.multiapp.v1.NotificationTemplatePaging.OrderByType)
    }

    /**
     * <pre>
     * Справочник типов направлений сортировки.
     * # Тип: byte
     * </pre>
     *
     * Protobuf enum {@code keyapis.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.NotificationTemplatePaging.DirectionType)
    }

    public static final int ORDER_BY_TYPE_FIELD_NUMBER = 1;
    private int orderByType_;
    /**
     * <pre>
     * Тип значения сортировки.
     * Если значение не передано, то будет взято значение по умолчанию.
     * # По умолчанию: CHANGED_AT
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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>
     * Тип значения сортировки.
     * Если значение не передано, то будет взято значение по умолчанию.
     * # По умолчанию: CHANGED_AT
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.OrderByType order_by_type = 1;</code>
     * @return The orderByType.
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.OrderByType getOrderByType() {
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.OrderByType result = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.OrderByType.forNumber(orderByType_);
      return result == null ? ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.OrderByType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Тип значения сортировки.
     * Если значение не передано, то будет взято значение по умолчанию.
     * # По умолчанию: CHANGED_AT
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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>
     * Тип значения сортировки.
     * Если значение не передано, то будет взято значение по умолчанию.
     * # По умолчанию: CHANGED_AT
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.OrderByType order_by_type = 1;</code>
     * @param value The orderByType to set.
     */
    private void setOrderByType(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.OrderByType value) {
      orderByType_ = value.getNumber();

    }
    /**
     * <pre>
     * Тип значения сортировки.
     * Если значение не передано, то будет взято значение по умолчанию.
     * # По умолчанию: CHANGED_AT
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.NotificationTemplatePaging.DirectionType direction_type = 2;</code>
     * @return The directionType.
     */
    @java.lang.Override
    public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.DirectionType getDirectionType() {
      ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.DirectionType result = ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.DirectionType.forNumber(directionType_);
      return result == null ? ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.DirectionType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Тип направления сортировки.
     * # По умолчанию: DESC
     * </pre>
     *
     * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.NotificationTemplatePaging.DirectionType direction_type = 2;</code>
     * @param value The directionType to set.
     */
    private void setDirectionType(ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.DirectionType value) {
      directionType_ = value.getNumber();

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

      directionType_ = 0;
    }

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

      limit_ = 0;
    }

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

      offset_ = 0;
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging 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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Пагинация шаблонов уведомлений
     * </pre>
     *
     * Protobuf type {@code keyapis.multiapp.v1.NotificationTemplatePaging}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.multiapp.v1.NotificationTemplatePaging)
        ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePagingOrBuilder {
      // Construct using ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Тип значения сортировки.
       * Если значение не передано, то будет взято значение по умолчанию.
       * # По умолчанию: CHANGED_AT
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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>
       * Тип значения сортировки.
       * Если значение не передано, то будет взято значение по умолчанию.
       * # По умолчанию: CHANGED_AT
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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>
       * Тип значения сортировки.
       * Если значение не передано, то будет взято значение по умолчанию.
       * # По умолчанию: CHANGED_AT
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.OrderByType order_by_type = 1;</code>
       * @return The orderByType.
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.OrderByType getOrderByType() {
        return instance.getOrderByType();
      }
      /**
       * <pre>
       * Тип значения сортировки.
       * Если значение не передано, то будет взято значение по умолчанию.
       * # По умолчанию: CHANGED_AT
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.OrderByType value) {
        copyOnWrite();
        instance.setOrderByType(value);
        return this;
      }
      /**
       * <pre>
       * Тип значения сортировки.
       * Если значение не передано, то будет взято значение по умолчанию.
       * # По умолчанию: CHANGED_AT
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.OrderByType order_by_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderByType() {
        copyOnWrite();
        instance.clearOrderByType();
        return this;
      }

      /**
       * <pre>
       * Тип направления сортировки.
       * # По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.NotificationTemplatePaging.DirectionType direction_type = 2;</code>
       * @return The directionType.
       */
      @java.lang.Override
      public ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.DirectionType getDirectionType() {
        return instance.getDirectionType();
      }
      /**
       * <pre>
       * Тип направления сортировки.
       * # По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.DirectionType value) {
        copyOnWrite();
        instance.setDirectionType(value);
        return this;
      }
      /**
       * <pre>
       * Тип направления сортировки.
       * # По умолчанию: DESC
       * </pre>
       *
       * <code>.keyapis.multiapp.v1.NotificationTemplatePaging.DirectionType direction_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDirectionType() {
        copyOnWrite();
        instance.clearDirectionType();
        return this;
      }

      /**
       * <pre>
       * Количество записей на страницу.
       * Если значение 0 (не передано), то будет взято значение по умолчанию.
       * # Диапазон: 0..100.
       * # По умолчанию: 20
       * </pre>
       *
       * <code>int32 limit = 3;</code>
       * @return The limit.
       */
      @java.lang.Override
      public int getLimit() {
        return instance.getLimit();
      }
      /**
       * <pre>
       * Количество записей на страницу.
       * Если значение 0 (не передано), то будет взято значение по умолчанию.
       * # Диапазон: 0..100.
       * # По умолчанию: 20
       * </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>
       * Количество записей на страницу.
       * Если значение 0 (не передано), то будет взято значение по умолчанию.
       * # Диапазон: 0..100.
       * # По умолчанию: 20
       * </pre>
       *
       * <code>int32 limit = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLimit() {
        copyOnWrite();
        instance.clearLimit();
        return this;
      }

      /**
       * <pre>
       * Сдвиг.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>int32 offset = 4;</code>
       * @return The offset.
       */
      @java.lang.Override
      public int getOffset() {
        return instance.getOffset();
      }
      /**
       * <pre>
       * Сдвиг.
       * # Диапазон: 0..2147483647
       * </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..2147483647
       * </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.multiapp.v1.NotificationTemplatePaging)
    }
    @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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging();
        }
        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.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging>(
                        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.multiapp.v1.NotificationTemplatePaging)
    private static final ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging DEFAULT_INSTANCE;
    static {
      NotificationTemplatePaging defaultInstance = new NotificationTemplatePaging();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        NotificationTemplatePaging.class, defaultInstance);
    }

    public static ru.keyapis.multiapp.v1.KeyapisMultiappV1Proto.NotificationTemplatePaging getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
