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

package ru.keyapis.device.v1;

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

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

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the preset field is set.
     */
    boolean hasPreset();
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The preset.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset getPreset();
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder getPresetOrBuilder();

    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
     * @return Whether the sipAccount field is set.
     */
    boolean hasSipAccount();
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
     * @return The sipAccount.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getSipAccount();
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder getSipAccountOrBuilder();

    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> 
        getSipRoomsList();
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getSipRooms(int index);
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    int getSipRoomsCount();
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
        getSipRoomsOrBuilderList();
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder getSipRoomsOrBuilder(
        int index);

    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
     * @return Whether the gate field is set.
     */
    boolean hasGate();
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
     * @return The gate.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getGate();
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder getGateOrBuilder();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> 
        getRfidsList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    int getRfidsCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index);

    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> 
        getCodesList();
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index);
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    int getCodesCount();
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList();
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index);

    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The ntpTimezone.
     */
    java.lang.String getNtpTimezone();
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for ntpTimezone.
     */
    com.google.protobuf.ByteString
        getNtpTimezoneBytes();

    /**
     * <pre>
     * Параметр Sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return Whether the sl3 field is set.
     */
    boolean hasSl3();
    /**
     * <pre>
     * Параметр Sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return The sl3.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getSl3();
    /**
     * <pre>
     * Параметр Sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder getSl3OrBuilder();

    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return Whether the emergencyCallSettings field is set.
     */
    boolean hasEmergencyCallSettings();
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return The emergencyCallSettings.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getEmergencyCallSettings();
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder getEmergencyCallSettingsOrBuilder();
  }
  /**
   * <pre>
   *Задача на конфигурирование устройства.
   * Очередь key.device.configure_device
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask}
   */
  public static final class ConfigureDeviceTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceTask)
      ConfigureDeviceTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ConfigureDeviceTask.newBuilder() to construct.
    private ConfigureDeviceTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ConfigureDeviceTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      sipRooms_ = java.util.Collections.emptyList();
      rfids_ = java.util.Collections.emptyList();
      codes_ = java.util.Collections.emptyList();
      ntpTimezone_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Builder.class);
    }

    public interface SipAccountOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceTask.SipAccount)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Имя
       * </pre>
       *
       * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <pre>
       * Имя
       * </pre>
       *
       * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();

      /**
       * <pre>
       * Номер
       * </pre>
       *
       * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The number.
       */
      java.lang.String getNumber();
      /**
       * <pre>
       * Номер
       * </pre>
       *
       * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for number.
       */
      com.google.protobuf.ByteString
          getNumberBytes();

      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The user.
       */
      java.lang.String getUser();
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for user.
       */
      com.google.protobuf.ByteString
          getUserBytes();

      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The password.
       */
      java.lang.String getPassword();
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for password.
       */
      com.google.protobuf.ByteString
          getPasswordBytes();
    }
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.SipAccount}
     */
    public static final class SipAccount extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceTask.SipAccount)
        SipAccountOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use SipAccount.newBuilder() to construct.
      private SipAccount(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private SipAccount() {
        name_ = "";
        number_ = "";
        user_ = "";
        password_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder.class);
      }

      public static final int NAME_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object name_ = "";
      /**
       * <pre>
       * Имя
       * </pre>
       *
       * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Имя
       * </pre>
       *
       * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int NUMBER_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object number_ = "";
      /**
       * <pre>
       * Номер
       * </pre>
       *
       * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The number.
       */
      @java.lang.Override
      public java.lang.String getNumber() {
        java.lang.Object ref = number_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          number_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Номер
       * </pre>
       *
       * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for number.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNumberBytes() {
        java.lang.Object ref = number_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          number_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int USER_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private volatile java.lang.Object user_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The user.
       */
      @java.lang.Override
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          user_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for user.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int PASSWORD_FIELD_NUMBER = 4;
      @SuppressWarnings("serial")
      private volatile java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The password.
       */
      @java.lang.Override
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for password.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(number_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, number_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(user_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, user_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, password_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(number_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, number_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(user_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, user_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, password_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (!getName()
            .equals(other.getName())) return false;
        if (!getNumber()
            .equals(other.getNumber())) return false;
        if (!getUser()
            .equals(other.getUser())) return false;
        if (!getPassword()
            .equals(other.getPassword())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
        hash = (37 * hash) + NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getNumber().hashCode();
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
        hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
        hash = (53 * hash) + getPassword().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.SipAccount}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceTask.SipAccount)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          name_ = "";
          number_ = "";
          user_ = "";
          password_ = "";
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.name_ = name_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.number_ = number_;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.user_ = user_;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.password_ = password_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance()) return this;
          if (!other.getName().isEmpty()) {
            name_ = other.name_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (!other.getNumber().isEmpty()) {
            number_ = other.number_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (!other.getUser().isEmpty()) {
            user_ = other.user_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (!other.getPassword().isEmpty()) {
            password_ = other.password_;
            bitField0_ |= 0x00000008;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private java.lang.Object name_ = "";
        /**
         * <pre>
         * Имя
         * </pre>
         *
         * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The name.
         */
        public java.lang.String getName() {
          java.lang.Object ref = name_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            name_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Имя
         * </pre>
         *
         * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for name.
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          java.lang.Object ref = name_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            name_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Имя
         * </pre>
         *
         * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          name_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Имя
         * </pre>
         *
         * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          name_ = getDefaultInstance().getName();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Имя
         * </pre>
         *
         * <code>string name = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          name_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private java.lang.Object number_ = "";
        /**
         * <pre>
         * Номер
         * </pre>
         *
         * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The number.
         */
        public java.lang.String getNumber() {
          java.lang.Object ref = number_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            number_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Номер
         * </pre>
         *
         * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for number.
         */
        public com.google.protobuf.ByteString
            getNumberBytes() {
          java.lang.Object ref = number_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            number_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Номер
         * </pre>
         *
         * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The number to set.
         * @return This builder for chaining.
         */
        public Builder setNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          number_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер
         * </pre>
         *
         * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearNumber() {
          number_ = getDefaultInstance().getNumber();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер
         * </pre>
         *
         * <code>string number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for number to set.
         * @return This builder for chaining.
         */
        public Builder setNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          number_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }

        private java.lang.Object user_ = "";
        /**
         * <pre>
         * Имя пользователя
         * </pre>
         *
         * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The user.
         */
        public java.lang.String getUser() {
          java.lang.Object ref = user_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            user_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Имя пользователя
         * </pre>
         *
         * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for user.
         */
        public com.google.protobuf.ByteString
            getUserBytes() {
          java.lang.Object ref = user_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            user_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Имя пользователя
         * </pre>
         *
         * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The user to set.
         * @return This builder for chaining.
         */
        public Builder setUser(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          user_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Имя пользователя
         * </pre>
         *
         * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearUser() {
          user_ = getDefaultInstance().getUser();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Имя пользователя
         * </pre>
         *
         * <code>string user = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for user to set.
         * @return This builder for chaining.
         */
        public Builder setUserBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          user_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }

        private java.lang.Object password_ = "";
        /**
         * <pre>
         * Пароль
         * </pre>
         *
         * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The password.
         */
        public java.lang.String getPassword() {
          java.lang.Object ref = password_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            password_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Пароль
         * </pre>
         *
         * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for password.
         */
        public com.google.protobuf.ByteString
            getPasswordBytes() {
          java.lang.Object ref = password_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            password_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Пароль
         * </pre>
         *
         * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The password to set.
         * @return This builder for chaining.
         */
        public Builder setPassword(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          password_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Пароль
         * </pre>
         *
         * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearPassword() {
          password_ = getDefaultInstance().getPassword();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Пароль
         * </pre>
         *
         * <code>string password = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for password to set.
         * @return This builder for chaining.
         */
        public Builder setPasswordBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          password_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceTask.SipAccount)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceTask.SipAccount)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface GateOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceTask.Gate)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Состояние параметра калитки.
       * true - используется, необходимо настроить параметы.
       * false - не используется, необходимо выключить параметры калитки
       * </pre>
       *
       * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isActive.
       */
      boolean getIsActive();

      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings> 
          getRelaySettingsList();
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings getRelaySettings(int index);
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      int getRelaySettingsCount();
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder> 
          getRelaySettingsOrBuilderList();
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder getRelaySettingsOrBuilder(
          int index);

      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange> 
          getRoomRangesList();
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange getRoomRanges(int index);
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      int getRoomRangesCount();
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder> 
          getRoomRangesOrBuilderList();
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder getRoomRangesOrBuilder(
          int index);
    }
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Gate}
     */
    public static final class Gate extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceTask.Gate)
        GateOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Gate.newBuilder() to construct.
      private Gate(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Gate() {
        relaySettings_ = java.util.Collections.emptyList();
        roomRanges_ = java.util.Collections.emptyList();
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder.class);
      }

      public interface RelaySettingsOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Состояние реле.
         * true - по команде «Открыть дверь» произойдет открытие реле.
         * false - по команде «Открыть дверь» не произойдет открытие реле
         * </pre>
         *
         * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The isActive.
         */
        boolean getIsActive();

        /**
         * <pre>
         * Индекс реле.
         * # Диапазон: 0..64
         * </pre>
         *
         * <code>int32 relay_index = 2;</code>
         * @return The relayIndex.
         */
        int getRelayIndex();
      }
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings}
       */
      public static final class RelaySettings extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings)
          RelaySettingsOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use RelaySettings.newBuilder() to construct.
        private RelaySettings(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private RelaySettings() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder.class);
        }

        public static final int IS_ACTIVE_FIELD_NUMBER = 1;
        private boolean isActive_ = false;
        /**
         * <pre>
         * Состояние реле.
         * true - по команде «Открыть дверь» произойдет открытие реле.
         * false - по команде «Открыть дверь» не произойдет открытие реле
         * </pre>
         *
         * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The isActive.
         */
        @java.lang.Override
        public boolean getIsActive() {
          return isActive_;
        }

        public static final int RELAY_INDEX_FIELD_NUMBER = 2;
        private int relayIndex_ = 0;
        /**
         * <pre>
         * Индекс реле.
         * # Диапазон: 0..64
         * </pre>
         *
         * <code>int32 relay_index = 2;</code>
         * @return The relayIndex.
         */
        @java.lang.Override
        public int getRelayIndex() {
          return relayIndex_;
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (isActive_ != false) {
            output.writeBool(1, isActive_);
          }
          if (relayIndex_ != 0) {
            output.writeInt32(2, relayIndex_);
          }
          getUnknownFields().writeTo(output);
        }

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

          size = 0;
          if (isActive_ != false) {
            size += com.google.protobuf.CodedOutputStream
              .computeBoolSize(1, isActive_);
          }
          if (relayIndex_ != 0) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, relayIndex_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings)) {
            return super.equals(obj);
          }
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings) obj;

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

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + IS_ACTIVE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsActive());
          hash = (37 * hash) + RELAY_INDEX_FIELD_NUMBER;
          hash = (53 * hash) + getRelayIndex();
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

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

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings)
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder.class);
          }

          // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.newBuilder()
          private Builder() {

          }

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

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            isActive_ = false;
            relayIndex_ = 0;
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings getDefaultInstanceForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings build() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings buildPartial() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings(this);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }

          private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings result) {
            int from_bitField0_ = bitField0_;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.isActive_ = isActive_;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.relayIndex_ = relayIndex_;
            }
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings) {
              return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings other) {
            if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.getDefaultInstance()) return this;
            if (other.getIsActive() != false) {
              setIsActive(other.getIsActive());
            }
            if (other.getRelayIndex() != 0) {
              setRelayIndex(other.getRelayIndex());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

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

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

          private boolean isActive_ ;
          /**
           * <pre>
           * Состояние реле.
           * true - по команде «Открыть дверь» произойдет открытие реле.
           * false - по команде «Открыть дверь» не произойдет открытие реле
           * </pre>
           *
           * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The isActive.
           */
          @java.lang.Override
          public boolean getIsActive() {
            return isActive_;
          }
          /**
           * <pre>
           * Состояние реле.
           * true - по команде «Открыть дверь» произойдет открытие реле.
           * false - по команде «Открыть дверь» не произойдет открытие реле
           * </pre>
           *
           * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The isActive to set.
           * @return This builder for chaining.
           */
          public Builder setIsActive(boolean value) {

            isActive_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Состояние реле.
           * true - по команде «Открыть дверь» произойдет открытие реле.
           * false - по команде «Открыть дверь» не произойдет открытие реле
           * </pre>
           *
           * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return This builder for chaining.
           */
          public Builder clearIsActive() {
            bitField0_ = (bitField0_ & ~0x00000001);
            isActive_ = false;
            onChanged();
            return this;
          }

          private int relayIndex_ ;
          /**
           * <pre>
           * Индекс реле.
           * # Диапазон: 0..64
           * </pre>
           *
           * <code>int32 relay_index = 2;</code>
           * @return The relayIndex.
           */
          @java.lang.Override
          public int getRelayIndex() {
            return relayIndex_;
          }
          /**
           * <pre>
           * Индекс реле.
           * # Диапазон: 0..64
           * </pre>
           *
           * <code>int32 relay_index = 2;</code>
           * @param value The relayIndex to set.
           * @return This builder for chaining.
           */
          public Builder setRelayIndex(int value) {

            relayIndex_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Индекс реле.
           * # Диапазон: 0..64
           * </pre>
           *
           * <code>int32 relay_index = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearRelayIndex() {
            bitField0_ = (bitField0_ & ~0x00000002);
            relayIndex_ = 0;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings)
        }

        // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings)
        private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings();
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface RoomRangeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Адрес дома
         * </pre>
         *
         * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The address.
         */
        java.lang.String getAddress();
        /**
         * <pre>
         * Адрес дома
         * </pre>
         *
         * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for address.
         */
        com.google.protobuf.ByteString
            getAddressBytes();

        /**
         * <pre>
         * Номер дома (подъезда)
         * </pre>
         *
         * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The prefix.
         */
        java.lang.String getPrefix();
        /**
         * <pre>
         * Номер дома (подъезда)
         * </pre>
         *
         * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for prefix.
         */
        com.google.protobuf.ByteString
            getPrefixBytes();

        /**
         * <pre>
         * Начало диапазона включительно
         * </pre>
         *
         * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The firstRoomNumber.
         */
        java.lang.String getFirstRoomNumber();
        /**
         * <pre>
         * Начало диапазона включительно
         * </pre>
         *
         * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for firstRoomNumber.
         */
        com.google.protobuf.ByteString
            getFirstRoomNumberBytes();

        /**
         * <pre>
         * Конец диапазона включительно
         * </pre>
         *
         * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The lastRoomNumber.
         */
        java.lang.String getLastRoomNumber();
        /**
         * <pre>
         * Конец диапазона включительно
         * </pre>
         *
         * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for lastRoomNumber.
         */
        com.google.protobuf.ByteString
            getLastRoomNumberBytes();
      }
      /**
       * <pre>
       * Диапазон квартир
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange}
       */
      public static final class RoomRange extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange)
          RoomRangeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use RoomRange.newBuilder() to construct.
        private RoomRange(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private RoomRange() {
          address_ = "";
          prefix_ = "";
          firstRoomNumber_ = "";
          lastRoomNumber_ = "";
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder.class);
        }

        public static final int ADDRESS_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object address_ = "";
        /**
         * <pre>
         * Адрес дома
         * </pre>
         *
         * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The address.
         */
        @java.lang.Override
        public java.lang.String getAddress() {
          java.lang.Object ref = address_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            address_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Адрес дома
         * </pre>
         *
         * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for address.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getAddressBytes() {
          java.lang.Object ref = address_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            address_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int PREFIX_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object prefix_ = "";
        /**
         * <pre>
         * Номер дома (подъезда)
         * </pre>
         *
         * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The prefix.
         */
        @java.lang.Override
        public java.lang.String getPrefix() {
          java.lang.Object ref = prefix_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            prefix_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Номер дома (подъезда)
         * </pre>
         *
         * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for prefix.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getPrefixBytes() {
          java.lang.Object ref = prefix_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            prefix_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int FIRST_ROOM_NUMBER_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private volatile java.lang.Object firstRoomNumber_ = "";
        /**
         * <pre>
         * Начало диапазона включительно
         * </pre>
         *
         * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The firstRoomNumber.
         */
        @java.lang.Override
        public java.lang.String getFirstRoomNumber() {
          java.lang.Object ref = firstRoomNumber_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            firstRoomNumber_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Начало диапазона включительно
         * </pre>
         *
         * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for firstRoomNumber.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getFirstRoomNumberBytes() {
          java.lang.Object ref = firstRoomNumber_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            firstRoomNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int LAST_ROOM_NUMBER_FIELD_NUMBER = 4;
        @SuppressWarnings("serial")
        private volatile java.lang.Object lastRoomNumber_ = "";
        /**
         * <pre>
         * Конец диапазона включительно
         * </pre>
         *
         * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The lastRoomNumber.
         */
        @java.lang.Override
        public java.lang.String getLastRoomNumber() {
          java.lang.Object ref = lastRoomNumber_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            lastRoomNumber_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Конец диапазона включительно
         * </pre>
         *
         * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for lastRoomNumber.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getLastRoomNumberBytes() {
          java.lang.Object ref = lastRoomNumber_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            lastRoomNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(address_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(prefix_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, prefix_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(firstRoomNumber_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 3, firstRoomNumber_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lastRoomNumber_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 4, lastRoomNumber_);
          }
          getUnknownFields().writeTo(output);
        }

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

          size = 0;
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(address_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(prefix_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, prefix_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(firstRoomNumber_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, firstRoomNumber_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lastRoomNumber_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, lastRoomNumber_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange)) {
            return super.equals(obj);
          }
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange) obj;

          if (!getAddress()
              .equals(other.getAddress())) return false;
          if (!getPrefix()
              .equals(other.getPrefix())) return false;
          if (!getFirstRoomNumber()
              .equals(other.getFirstRoomNumber())) return false;
          if (!getLastRoomNumber()
              .equals(other.getLastRoomNumber())) return false;
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + ADDRESS_FIELD_NUMBER;
          hash = (53 * hash) + getAddress().hashCode();
          hash = (37 * hash) + PREFIX_FIELD_NUMBER;
          hash = (53 * hash) + getPrefix().hashCode();
          hash = (37 * hash) + FIRST_ROOM_NUMBER_FIELD_NUMBER;
          hash = (53 * hash) + getFirstRoomNumber().hashCode();
          hash = (37 * hash) + LAST_ROOM_NUMBER_FIELD_NUMBER;
          hash = (53 * hash) + getLastRoomNumber().hashCode();
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

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

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Диапазон квартир
         * </pre>
         *
         * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange)
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder.class);
          }

          // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.newBuilder()
          private Builder() {

          }

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

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            address_ = "";
            prefix_ = "";
            firstRoomNumber_ = "";
            lastRoomNumber_ = "";
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange getDefaultInstanceForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange build() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange buildPartial() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange(this);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }

          private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange result) {
            int from_bitField0_ = bitField0_;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.address_ = address_;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.prefix_ = prefix_;
            }
            if (((from_bitField0_ & 0x00000004) != 0)) {
              result.firstRoomNumber_ = firstRoomNumber_;
            }
            if (((from_bitField0_ & 0x00000008) != 0)) {
              result.lastRoomNumber_ = lastRoomNumber_;
            }
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange) {
              return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange other) {
            if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.getDefaultInstance()) return this;
            if (!other.getAddress().isEmpty()) {
              address_ = other.address_;
              bitField0_ |= 0x00000001;
              onChanged();
            }
            if (!other.getPrefix().isEmpty()) {
              prefix_ = other.prefix_;
              bitField0_ |= 0x00000002;
              onChanged();
            }
            if (!other.getFirstRoomNumber().isEmpty()) {
              firstRoomNumber_ = other.firstRoomNumber_;
              bitField0_ |= 0x00000004;
              onChanged();
            }
            if (!other.getLastRoomNumber().isEmpty()) {
              lastRoomNumber_ = other.lastRoomNumber_;
              bitField0_ |= 0x00000008;
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

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

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

          private java.lang.Object address_ = "";
          /**
           * <pre>
           * Адрес дома
           * </pre>
           *
           * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The address.
           */
          public java.lang.String getAddress() {
            java.lang.Object ref = address_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              address_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Адрес дома
           * </pre>
           *
           * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The bytes for address.
           */
          public com.google.protobuf.ByteString
              getAddressBytes() {
            java.lang.Object ref = address_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              address_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Адрес дома
           * </pre>
           *
           * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The address to set.
           * @return This builder for chaining.
           */
          public Builder setAddress(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            address_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Адрес дома
           * </pre>
           *
           * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return This builder for chaining.
           */
          public Builder clearAddress() {
            address_ = getDefaultInstance().getAddress();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Адрес дома
           * </pre>
           *
           * <code>string address = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The bytes for address to set.
           * @return This builder for chaining.
           */
          public Builder setAddressBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            address_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }

          private java.lang.Object prefix_ = "";
          /**
           * <pre>
           * Номер дома (подъезда)
           * </pre>
           *
           * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The prefix.
           */
          public java.lang.String getPrefix() {
            java.lang.Object ref = prefix_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              prefix_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Номер дома (подъезда)
           * </pre>
           *
           * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The bytes for prefix.
           */
          public com.google.protobuf.ByteString
              getPrefixBytes() {
            java.lang.Object ref = prefix_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              prefix_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Номер дома (подъезда)
           * </pre>
           *
           * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The prefix to set.
           * @return This builder for chaining.
           */
          public Builder setPrefix(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            prefix_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Номер дома (подъезда)
           * </pre>
           *
           * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return This builder for chaining.
           */
          public Builder clearPrefix() {
            prefix_ = getDefaultInstance().getPrefix();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Номер дома (подъезда)
           * </pre>
           *
           * <code>string prefix = 2 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The bytes for prefix to set.
           * @return This builder for chaining.
           */
          public Builder setPrefixBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            prefix_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }

          private java.lang.Object firstRoomNumber_ = "";
          /**
           * <pre>
           * Начало диапазона включительно
           * </pre>
           *
           * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The firstRoomNumber.
           */
          public java.lang.String getFirstRoomNumber() {
            java.lang.Object ref = firstRoomNumber_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              firstRoomNumber_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Начало диапазона включительно
           * </pre>
           *
           * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The bytes for firstRoomNumber.
           */
          public com.google.protobuf.ByteString
              getFirstRoomNumberBytes() {
            java.lang.Object ref = firstRoomNumber_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              firstRoomNumber_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Начало диапазона включительно
           * </pre>
           *
           * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The firstRoomNumber to set.
           * @return This builder for chaining.
           */
          public Builder setFirstRoomNumber(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            firstRoomNumber_ = value;
            bitField0_ |= 0x00000004;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Начало диапазона включительно
           * </pre>
           *
           * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return This builder for chaining.
           */
          public Builder clearFirstRoomNumber() {
            firstRoomNumber_ = getDefaultInstance().getFirstRoomNumber();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Начало диапазона включительно
           * </pre>
           *
           * <code>string first_room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The bytes for firstRoomNumber to set.
           * @return This builder for chaining.
           */
          public Builder setFirstRoomNumberBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            firstRoomNumber_ = value;
            bitField0_ |= 0x00000004;
            onChanged();
            return this;
          }

          private java.lang.Object lastRoomNumber_ = "";
          /**
           * <pre>
           * Конец диапазона включительно
           * </pre>
           *
           * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The lastRoomNumber.
           */
          public java.lang.String getLastRoomNumber() {
            java.lang.Object ref = lastRoomNumber_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              lastRoomNumber_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Конец диапазона включительно
           * </pre>
           *
           * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The bytes for lastRoomNumber.
           */
          public com.google.protobuf.ByteString
              getLastRoomNumberBytes() {
            java.lang.Object ref = lastRoomNumber_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              lastRoomNumber_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Конец диапазона включительно
           * </pre>
           *
           * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The lastRoomNumber to set.
           * @return This builder for chaining.
           */
          public Builder setLastRoomNumber(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            lastRoomNumber_ = value;
            bitField0_ |= 0x00000008;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Конец диапазона включительно
           * </pre>
           *
           * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return This builder for chaining.
           */
          public Builder clearLastRoomNumber() {
            lastRoomNumber_ = getDefaultInstance().getLastRoomNumber();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Конец диапазона включительно
           * </pre>
           *
           * <code>string last_room_number = 4 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The bytes for lastRoomNumber to set.
           * @return This builder for chaining.
           */
          public Builder setLastRoomNumberBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            lastRoomNumber_ = value;
            bitField0_ |= 0x00000008;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange)
        }

        // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange)
        private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange();
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public static final int IS_ACTIVE_FIELD_NUMBER = 1;
      private boolean isActive_ = false;
      /**
       * <pre>
       * Состояние параметра калитки.
       * true - используется, необходимо настроить параметы.
       * false - не используется, необходимо выключить параметры калитки
       * </pre>
       *
       * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isActive.
       */
      @java.lang.Override
      public boolean getIsActive() {
        return isActive_;
      }

      public static final int RELAY_SETTINGS_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings> relaySettings_;
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings> getRelaySettingsList() {
        return relaySettings_;
      }
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder> 
          getRelaySettingsOrBuilderList() {
        return relaySettings_;
      }
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public int getRelaySettingsCount() {
        return relaySettings_.size();
      }
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings getRelaySettings(int index) {
        return relaySettings_.get(index);
      }
      /**
       * <pre>
       * Параметры реле
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder getRelaySettingsOrBuilder(
          int index) {
        return relaySettings_.get(index);
      }

      public static final int ROOM_RANGES_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange> roomRanges_;
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange> getRoomRangesList() {
        return roomRanges_;
      }
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder> 
          getRoomRangesOrBuilderList() {
        return roomRanges_;
      }
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public int getRoomRangesCount() {
        return roomRanges_.size();
      }
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange getRoomRanges(int index) {
        return roomRanges_.get(index);
      }
      /**
       * <pre>
       * Диапазоны квартир
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder getRoomRangesOrBuilder(
          int index) {
        return roomRanges_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (isActive_ != false) {
          output.writeBool(1, isActive_);
        }
        for (int i = 0; i < relaySettings_.size(); i++) {
          output.writeMessage(2, relaySettings_.get(i));
        }
        for (int i = 0; i < roomRanges_.size(); i++) {
          output.writeMessage(3, roomRanges_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (isActive_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, isActive_);
        }
        for (int i = 0; i < relaySettings_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, relaySettings_.get(i));
        }
        for (int i = 0; i < roomRanges_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, roomRanges_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (getIsActive()
            != other.getIsActive()) return false;
        if (!getRelaySettingsList()
            .equals(other.getRelaySettingsList())) return false;
        if (!getRoomRangesList()
            .equals(other.getRoomRangesList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + IS_ACTIVE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsActive());
        if (getRelaySettingsCount() > 0) {
          hash = (37 * hash) + RELAY_SETTINGS_FIELD_NUMBER;
          hash = (53 * hash) + getRelaySettingsList().hashCode();
        }
        if (getRoomRangesCount() > 0) {
          hash = (37 * hash) + ROOM_RANGES_FIELD_NUMBER;
          hash = (53 * hash) + getRoomRangesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Gate}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceTask.Gate)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          isActive_ = false;
          if (relaySettingsBuilder_ == null) {
            relaySettings_ = java.util.Collections.emptyList();
          } else {
            relaySettings_ = null;
            relaySettingsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (roomRangesBuilder_ == null) {
            roomRanges_ = java.util.Collections.emptyList();
          } else {
            roomRanges_ = null;
            roomRangesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate result) {
          if (relaySettingsBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0)) {
              relaySettings_ = java.util.Collections.unmodifiableList(relaySettings_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.relaySettings_ = relaySettings_;
          } else {
            result.relaySettings_ = relaySettingsBuilder_.build();
          }
          if (roomRangesBuilder_ == null) {
            if (((bitField0_ & 0x00000004) != 0)) {
              roomRanges_ = java.util.Collections.unmodifiableList(roomRanges_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.roomRanges_ = roomRanges_;
          } else {
            result.roomRanges_ = roomRangesBuilder_.build();
          }
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.isActive_ = isActive_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance()) return this;
          if (other.getIsActive() != false) {
            setIsActive(other.getIsActive());
          }
          if (relaySettingsBuilder_ == null) {
            if (!other.relaySettings_.isEmpty()) {
              if (relaySettings_.isEmpty()) {
                relaySettings_ = other.relaySettings_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureRelaySettingsIsMutable();
                relaySettings_.addAll(other.relaySettings_);
              }
              onChanged();
            }
          } else {
            if (!other.relaySettings_.isEmpty()) {
              if (relaySettingsBuilder_.isEmpty()) {
                relaySettingsBuilder_.dispose();
                relaySettingsBuilder_ = null;
                relaySettings_ = other.relaySettings_;
                bitField0_ = (bitField0_ & ~0x00000002);
                relaySettingsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getRelaySettingsFieldBuilder() : null;
              } else {
                relaySettingsBuilder_.addAllMessages(other.relaySettings_);
              }
            }
          }
          if (roomRangesBuilder_ == null) {
            if (!other.roomRanges_.isEmpty()) {
              if (roomRanges_.isEmpty()) {
                roomRanges_ = other.roomRanges_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureRoomRangesIsMutable();
                roomRanges_.addAll(other.roomRanges_);
              }
              onChanged();
            }
          } else {
            if (!other.roomRanges_.isEmpty()) {
              if (roomRangesBuilder_.isEmpty()) {
                roomRangesBuilder_.dispose();
                roomRangesBuilder_ = null;
                roomRanges_ = other.roomRanges_;
                bitField0_ = (bitField0_ & ~0x00000004);
                roomRangesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getRoomRangesFieldBuilder() : null;
              } else {
                roomRangesBuilder_.addAllMessages(other.roomRanges_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  isActive_ = input.readBool();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 18: {
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings m =
                      input.readMessage(
                          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.parser(),
                          extensionRegistry);
                  if (relaySettingsBuilder_ == null) {
                    ensureRelaySettingsIsMutable();
                    relaySettings_.add(m);
                  } else {
                    relaySettingsBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                case 26: {
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange m =
                      input.readMessage(
                          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.parser(),
                          extensionRegistry);
                  if (roomRangesBuilder_ == null) {
                    ensureRoomRangesIsMutable();
                    roomRanges_.add(m);
                  } else {
                    roomRangesBuilder_.addMessage(m);
                  }
                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private boolean isActive_ ;
        /**
         * <pre>
         * Состояние параметра калитки.
         * true - используется, необходимо настроить параметы.
         * false - не используется, необходимо выключить параметры калитки
         * </pre>
         *
         * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The isActive.
         */
        @java.lang.Override
        public boolean getIsActive() {
          return isActive_;
        }
        /**
         * <pre>
         * Состояние параметра калитки.
         * true - используется, необходимо настроить параметы.
         * false - не используется, необходимо выключить параметры калитки
         * </pre>
         *
         * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The isActive to set.
         * @return This builder for chaining.
         */
        public Builder setIsActive(boolean value) {

          isActive_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Состояние параметра калитки.
         * true - используется, необходимо настроить параметы.
         * false - не используется, необходимо выключить параметры калитки
         * </pre>
         *
         * <code>bool is_active = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearIsActive() {
          bitField0_ = (bitField0_ & ~0x00000001);
          isActive_ = false;
          onChanged();
          return this;
        }

        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings> relaySettings_ =
          java.util.Collections.emptyList();
        private void ensureRelaySettingsIsMutable() {
          if (!((bitField0_ & 0x00000002) != 0)) {
            relaySettings_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings>(relaySettings_);
            bitField0_ |= 0x00000002;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder> relaySettingsBuilder_;

        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings> getRelaySettingsList() {
          if (relaySettingsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(relaySettings_);
          } else {
            return relaySettingsBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public int getRelaySettingsCount() {
          if (relaySettingsBuilder_ == null) {
            return relaySettings_.size();
          } else {
            return relaySettingsBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings getRelaySettings(int index) {
          if (relaySettingsBuilder_ == null) {
            return relaySettings_.get(index);
          } else {
            return relaySettingsBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setRelaySettings(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings value) {
          if (relaySettingsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRelaySettingsIsMutable();
            relaySettings_.set(index, value);
            onChanged();
          } else {
            relaySettingsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setRelaySettings(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder builderForValue) {
          if (relaySettingsBuilder_ == null) {
            ensureRelaySettingsIsMutable();
            relaySettings_.set(index, builderForValue.build());
            onChanged();
          } else {
            relaySettingsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRelaySettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings value) {
          if (relaySettingsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRelaySettingsIsMutable();
            relaySettings_.add(value);
            onChanged();
          } else {
            relaySettingsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRelaySettings(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings value) {
          if (relaySettingsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRelaySettingsIsMutable();
            relaySettings_.add(index, value);
            onChanged();
          } else {
            relaySettingsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRelaySettings(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder builderForValue) {
          if (relaySettingsBuilder_ == null) {
            ensureRelaySettingsIsMutable();
            relaySettings_.add(builderForValue.build());
            onChanged();
          } else {
            relaySettingsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRelaySettings(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder builderForValue) {
          if (relaySettingsBuilder_ == null) {
            ensureRelaySettingsIsMutable();
            relaySettings_.add(index, builderForValue.build());
            onChanged();
          } else {
            relaySettingsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addAllRelaySettings(
            java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings> values) {
          if (relaySettingsBuilder_ == null) {
            ensureRelaySettingsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, relaySettings_);
            onChanged();
          } else {
            relaySettingsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder clearRelaySettings() {
          if (relaySettingsBuilder_ == null) {
            relaySettings_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            relaySettingsBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder removeRelaySettings(int index) {
          if (relaySettingsBuilder_ == null) {
            ensureRelaySettingsIsMutable();
            relaySettings_.remove(index);
            onChanged();
          } else {
            relaySettingsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder getRelaySettingsBuilder(
            int index) {
          return getRelaySettingsFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder getRelaySettingsOrBuilder(
            int index) {
          if (relaySettingsBuilder_ == null) {
            return relaySettings_.get(index);  } else {
            return relaySettingsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder> 
             getRelaySettingsOrBuilderList() {
          if (relaySettingsBuilder_ != null) {
            return relaySettingsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(relaySettings_);
          }
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder addRelaySettingsBuilder() {
          return getRelaySettingsFieldBuilder().addBuilder(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.getDefaultInstance());
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder addRelaySettingsBuilder(
            int index) {
          return getRelaySettingsFieldBuilder().addBuilder(
              index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.getDefaultInstance());
        }
        /**
         * <pre>
         * Параметры реле
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RelaySettings relay_settings = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder> 
             getRelaySettingsBuilderList() {
          return getRelaySettingsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder> 
            getRelaySettingsFieldBuilder() {
          if (relaySettingsBuilder_ == null) {
            relaySettingsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RelaySettingsOrBuilder>(
                    relaySettings_,
                    ((bitField0_ & 0x00000002) != 0),
                    getParentForChildren(),
                    isClean());
            relaySettings_ = null;
          }
          return relaySettingsBuilder_;
        }

        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange> roomRanges_ =
          java.util.Collections.emptyList();
        private void ensureRoomRangesIsMutable() {
          if (!((bitField0_ & 0x00000004) != 0)) {
            roomRanges_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange>(roomRanges_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder> roomRangesBuilder_;

        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange> getRoomRangesList() {
          if (roomRangesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(roomRanges_);
          } else {
            return roomRangesBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public int getRoomRangesCount() {
          if (roomRangesBuilder_ == null) {
            return roomRanges_.size();
          } else {
            return roomRangesBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange getRoomRanges(int index) {
          if (roomRangesBuilder_ == null) {
            return roomRanges_.get(index);
          } else {
            return roomRangesBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setRoomRanges(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange value) {
          if (roomRangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRoomRangesIsMutable();
            roomRanges_.set(index, value);
            onChanged();
          } else {
            roomRangesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setRoomRanges(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder builderForValue) {
          if (roomRangesBuilder_ == null) {
            ensureRoomRangesIsMutable();
            roomRanges_.set(index, builderForValue.build());
            onChanged();
          } else {
            roomRangesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRoomRanges(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange value) {
          if (roomRangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRoomRangesIsMutable();
            roomRanges_.add(value);
            onChanged();
          } else {
            roomRangesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRoomRanges(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange value) {
          if (roomRangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRoomRangesIsMutable();
            roomRanges_.add(index, value);
            onChanged();
          } else {
            roomRangesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRoomRanges(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder builderForValue) {
          if (roomRangesBuilder_ == null) {
            ensureRoomRangesIsMutable();
            roomRanges_.add(builderForValue.build());
            onChanged();
          } else {
            roomRangesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addRoomRanges(
            int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder builderForValue) {
          if (roomRangesBuilder_ == null) {
            ensureRoomRangesIsMutable();
            roomRanges_.add(index, builderForValue.build());
            onChanged();
          } else {
            roomRangesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder addAllRoomRanges(
            java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange> values) {
          if (roomRangesBuilder_ == null) {
            ensureRoomRangesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, roomRanges_);
            onChanged();
          } else {
            roomRangesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder clearRoomRanges() {
          if (roomRangesBuilder_ == null) {
            roomRanges_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            roomRangesBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder removeRoomRanges(int index) {
          if (roomRangesBuilder_ == null) {
            ensureRoomRangesIsMutable();
            roomRanges_.remove(index);
            onChanged();
          } else {
            roomRangesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder getRoomRangesBuilder(
            int index) {
          return getRoomRangesFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder getRoomRangesOrBuilder(
            int index) {
          if (roomRangesBuilder_ == null) {
            return roomRanges_.get(index);  } else {
            return roomRangesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder> 
             getRoomRangesOrBuilderList() {
          if (roomRangesBuilder_ != null) {
            return roomRangesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(roomRanges_);
          }
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder addRoomRangesBuilder() {
          return getRoomRangesFieldBuilder().addBuilder(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.getDefaultInstance());
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder addRoomRangesBuilder(
            int index) {
          return getRoomRangesFieldBuilder().addBuilder(
              index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.getDefaultInstance());
        }
        /**
         * <pre>
         * Диапазоны квартир
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.ConfigureDeviceTask.Gate.RoomRange room_ranges = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder> 
             getRoomRangesBuilderList() {
          return getRoomRangesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder> 
            getRoomRangesFieldBuilder() {
          if (roomRangesBuilder_ == null) {
            roomRangesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRange.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.RoomRangeOrBuilder>(
                    roomRanges_,
                    ((bitField0_ & 0x00000004) != 0),
                    getParentForChildren(),
                    isClean());
            roomRanges_ = null;
          }
          return roomRangesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceTask.Gate)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceTask.Gate)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface EncryptionProfileOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Номер сектора
       * </pre>
       *
       * <code>int32 sector_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sectorNumber.
       */
      int getSectorNumber();

      /**
       * <pre>
       * Номер блока
       * </pre>
       *
       * <code>int32 block_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The blockNumber.
       */
      int getBlockNumber();

      /**
       * <pre>
       * aes ключ
       * </pre>
       *
       * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The aesKey.
       */
      java.lang.String getAesKey();
      /**
       * <pre>
       * aes ключ
       * </pre>
       *
       * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for aesKey.
       */
      com.google.protobuf.ByteString
          getAesKeyBytes();

      /**
       * <pre>
       * Индекс первого символа для секрета
       * </pre>
       *
       * <code>int32 start_index = 4;</code>
       * @return The startIndex.
       */
      int getStartIndex();

      /**
       * <pre>
       * Индекс последнего символа для секрета
       * </pre>
       *
       * <code>int32 end_index = 5;</code>
       * @return The endIndex.
       */
      int getEndIndex();
    }
    /**
     * <pre>
     * Профиль шифрования
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile}
     */
    public static final class EncryptionProfile extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile)
        EncryptionProfileOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use EncryptionProfile.newBuilder() to construct.
      private EncryptionProfile(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private EncryptionProfile() {
        aesKey_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.Builder.class);
      }

      public static final int SECTOR_NUMBER_FIELD_NUMBER = 1;
      private int sectorNumber_ = 0;
      /**
       * <pre>
       * Номер сектора
       * </pre>
       *
       * <code>int32 sector_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sectorNumber.
       */
      @java.lang.Override
      public int getSectorNumber() {
        return sectorNumber_;
      }

      public static final int BLOCK_NUMBER_FIELD_NUMBER = 2;
      private int blockNumber_ = 0;
      /**
       * <pre>
       * Номер блока
       * </pre>
       *
       * <code>int32 block_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The blockNumber.
       */
      @java.lang.Override
      public int getBlockNumber() {
        return blockNumber_;
      }

      public static final int AES_KEY_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private volatile java.lang.Object aesKey_ = "";
      /**
       * <pre>
       * aes ключ
       * </pre>
       *
       * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The aesKey.
       */
      @java.lang.Override
      public java.lang.String getAesKey() {
        java.lang.Object ref = aesKey_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          aesKey_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * aes ключ
       * </pre>
       *
       * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for aesKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getAesKeyBytes() {
        java.lang.Object ref = aesKey_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          aesKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int START_INDEX_FIELD_NUMBER = 4;
      private int startIndex_ = 0;
      /**
       * <pre>
       * Индекс первого символа для секрета
       * </pre>
       *
       * <code>int32 start_index = 4;</code>
       * @return The startIndex.
       */
      @java.lang.Override
      public int getStartIndex() {
        return startIndex_;
      }

      public static final int END_INDEX_FIELD_NUMBER = 5;
      private int endIndex_ = 0;
      /**
       * <pre>
       * Индекс последнего символа для секрета
       * </pre>
       *
       * <code>int32 end_index = 5;</code>
       * @return The endIndex.
       */
      @java.lang.Override
      public int getEndIndex() {
        return endIndex_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (sectorNumber_ != 0) {
          output.writeInt32(1, sectorNumber_);
        }
        if (blockNumber_ != 0) {
          output.writeInt32(2, blockNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(aesKey_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, aesKey_);
        }
        if (startIndex_ != 0) {
          output.writeInt32(4, startIndex_);
        }
        if (endIndex_ != 0) {
          output.writeInt32(5, endIndex_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (sectorNumber_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, sectorNumber_);
        }
        if (blockNumber_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, blockNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(aesKey_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, aesKey_);
        }
        if (startIndex_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, startIndex_);
        }
        if (endIndex_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(5, endIndex_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (getSectorNumber()
            != other.getSectorNumber()) return false;
        if (getBlockNumber()
            != other.getBlockNumber()) return false;
        if (!getAesKey()
            .equals(other.getAesKey())) return false;
        if (getStartIndex()
            != other.getStartIndex()) return false;
        if (getEndIndex()
            != other.getEndIndex()) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + SECTOR_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getSectorNumber();
        hash = (37 * hash) + BLOCK_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getBlockNumber();
        hash = (37 * hash) + AES_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getAesKey().hashCode();
        hash = (37 * hash) + START_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getStartIndex();
        hash = (37 * hash) + END_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getEndIndex();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Профиль шифрования
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfileOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          sectorNumber_ = 0;
          blockNumber_ = 0;
          aesKey_ = "";
          startIndex_ = 0;
          endIndex_ = 0;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.sectorNumber_ = sectorNumber_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.blockNumber_ = blockNumber_;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.aesKey_ = aesKey_;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.startIndex_ = startIndex_;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.endIndex_ = endIndex_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.getDefaultInstance()) return this;
          if (other.getSectorNumber() != 0) {
            setSectorNumber(other.getSectorNumber());
          }
          if (other.getBlockNumber() != 0) {
            setBlockNumber(other.getBlockNumber());
          }
          if (!other.getAesKey().isEmpty()) {
            aesKey_ = other.aesKey_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (other.getStartIndex() != 0) {
            setStartIndex(other.getStartIndex());
          }
          if (other.getEndIndex() != 0) {
            setEndIndex(other.getEndIndex());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private int sectorNumber_ ;
        /**
         * <pre>
         * Номер сектора
         * </pre>
         *
         * <code>int32 sector_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The sectorNumber.
         */
        @java.lang.Override
        public int getSectorNumber() {
          return sectorNumber_;
        }
        /**
         * <pre>
         * Номер сектора
         * </pre>
         *
         * <code>int32 sector_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The sectorNumber to set.
         * @return This builder for chaining.
         */
        public Builder setSectorNumber(int value) {

          sectorNumber_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер сектора
         * </pre>
         *
         * <code>int32 sector_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearSectorNumber() {
          bitField0_ = (bitField0_ & ~0x00000001);
          sectorNumber_ = 0;
          onChanged();
          return this;
        }

        private int blockNumber_ ;
        /**
         * <pre>
         * Номер блока
         * </pre>
         *
         * <code>int32 block_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The blockNumber.
         */
        @java.lang.Override
        public int getBlockNumber() {
          return blockNumber_;
        }
        /**
         * <pre>
         * Номер блока
         * </pre>
         *
         * <code>int32 block_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The blockNumber to set.
         * @return This builder for chaining.
         */
        public Builder setBlockNumber(int value) {

          blockNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер блока
         * </pre>
         *
         * <code>int32 block_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearBlockNumber() {
          bitField0_ = (bitField0_ & ~0x00000002);
          blockNumber_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object aesKey_ = "";
        /**
         * <pre>
         * aes ключ
         * </pre>
         *
         * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The aesKey.
         */
        public java.lang.String getAesKey() {
          java.lang.Object ref = aesKey_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            aesKey_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * aes ключ
         * </pre>
         *
         * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for aesKey.
         */
        public com.google.protobuf.ByteString
            getAesKeyBytes() {
          java.lang.Object ref = aesKey_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            aesKey_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * aes ключ
         * </pre>
         *
         * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The aesKey to set.
         * @return This builder for chaining.
         */
        public Builder setAesKey(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          aesKey_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * aes ключ
         * </pre>
         *
         * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearAesKey() {
          aesKey_ = getDefaultInstance().getAesKey();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * aes ключ
         * </pre>
         *
         * <code>string aes_key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for aesKey to set.
         * @return This builder for chaining.
         */
        public Builder setAesKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          aesKey_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }

        private int startIndex_ ;
        /**
         * <pre>
         * Индекс первого символа для секрета
         * </pre>
         *
         * <code>int32 start_index = 4;</code>
         * @return The startIndex.
         */
        @java.lang.Override
        public int getStartIndex() {
          return startIndex_;
        }
        /**
         * <pre>
         * Индекс первого символа для секрета
         * </pre>
         *
         * <code>int32 start_index = 4;</code>
         * @param value The startIndex to set.
         * @return This builder for chaining.
         */
        public Builder setStartIndex(int value) {

          startIndex_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Индекс первого символа для секрета
         * </pre>
         *
         * <code>int32 start_index = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearStartIndex() {
          bitField0_ = (bitField0_ & ~0x00000008);
          startIndex_ = 0;
          onChanged();
          return this;
        }

        private int endIndex_ ;
        /**
         * <pre>
         * Индекс последнего символа для секрета
         * </pre>
         *
         * <code>int32 end_index = 5;</code>
         * @return The endIndex.
         */
        @java.lang.Override
        public int getEndIndex() {
          return endIndex_;
        }
        /**
         * <pre>
         * Индекс последнего символа для секрета
         * </pre>
         *
         * <code>int32 end_index = 5;</code>
         * @param value The endIndex to set.
         * @return This builder for chaining.
         */
        public Builder setEndIndex(int value) {

          endIndex_ = value;
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Индекс последнего символа для секрета
         * </pre>
         *
         * <code>int32 end_index = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearEndIndex() {
          bitField0_ = (bitField0_ & ~0x00000010);
          endIndex_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface Sl3OrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceTask.Sl3)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Статус настройки SL3
       * </pre>
       *
       * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isEnabled.
       */
      boolean getIsEnabled();

      /**
       * <pre>
       * Профиль шифрования
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
       * @return Whether the encryptionProfile field is set.
       */
      boolean hasEncryptionProfile();
      /**
       * <pre>
       * Профиль шифрования
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
       * @return The encryptionProfile.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile getEncryptionProfile();
      /**
       * <pre>
       * Профиль шифрования
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfileOrBuilder getEncryptionProfileOrBuilder();
    }
    /**
     * <pre>
     * Параметр Sl3
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Sl3}
     */
    public static final class Sl3 extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceTask.Sl3)
        Sl3OrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Sl3.newBuilder() to construct.
      private Sl3(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Sl3() {
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder.class);
      }

      public static final int IS_ENABLED_FIELD_NUMBER = 1;
      private boolean isEnabled_ = false;
      /**
       * <pre>
       * Статус настройки SL3
       * </pre>
       *
       * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isEnabled.
       */
      @java.lang.Override
      public boolean getIsEnabled() {
        return isEnabled_;
      }

      public static final int ENCRYPTION_PROFILE_FIELD_NUMBER = 2;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile encryptionProfile_;
      /**
       * <pre>
       * Профиль шифрования
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
       * @return Whether the encryptionProfile field is set.
       */
      @java.lang.Override
      public boolean hasEncryptionProfile() {
        return encryptionProfile_ != null;
      }
      /**
       * <pre>
       * Профиль шифрования
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
       * @return The encryptionProfile.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile getEncryptionProfile() {
        return encryptionProfile_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.getDefaultInstance() : encryptionProfile_;
      }
      /**
       * <pre>
       * Профиль шифрования
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfileOrBuilder getEncryptionProfileOrBuilder() {
        return encryptionProfile_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.getDefaultInstance() : encryptionProfile_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (isEnabled_ != false) {
          output.writeBool(1, isEnabled_);
        }
        if (encryptionProfile_ != null) {
          output.writeMessage(2, getEncryptionProfile());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (isEnabled_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, isEnabled_);
        }
        if (encryptionProfile_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getEncryptionProfile());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (getIsEnabled()
            != other.getIsEnabled()) return false;
        if (hasEncryptionProfile() != other.hasEncryptionProfile()) return false;
        if (hasEncryptionProfile()) {
          if (!getEncryptionProfile()
              .equals(other.getEncryptionProfile())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + IS_ENABLED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsEnabled());
        if (hasEncryptionProfile()) {
          hash = (37 * hash) + ENCRYPTION_PROFILE_FIELD_NUMBER;
          hash = (53 * hash) + getEncryptionProfile().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask.Sl3}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceTask.Sl3)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          isEnabled_ = false;
          encryptionProfile_ = null;
          if (encryptionProfileBuilder_ != null) {
            encryptionProfileBuilder_.dispose();
            encryptionProfileBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.isEnabled_ = isEnabled_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.encryptionProfile_ = encryptionProfileBuilder_ == null
                ? encryptionProfile_
                : encryptionProfileBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance()) return this;
          if (other.getIsEnabled() != false) {
            setIsEnabled(other.getIsEnabled());
          }
          if (other.hasEncryptionProfile()) {
            mergeEncryptionProfile(other.getEncryptionProfile());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private boolean isEnabled_ ;
        /**
         * <pre>
         * Статус настройки SL3
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The isEnabled.
         */
        @java.lang.Override
        public boolean getIsEnabled() {
          return isEnabled_;
        }
        /**
         * <pre>
         * Статус настройки SL3
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The isEnabled to set.
         * @return This builder for chaining.
         */
        public Builder setIsEnabled(boolean value) {

          isEnabled_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Статус настройки SL3
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearIsEnabled() {
          bitField0_ = (bitField0_ & ~0x00000001);
          isEnabled_ = false;
          onChanged();
          return this;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile encryptionProfile_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfileOrBuilder> encryptionProfileBuilder_;
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         * @return Whether the encryptionProfile field is set.
         */
        public boolean hasEncryptionProfile() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         * @return The encryptionProfile.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile getEncryptionProfile() {
          if (encryptionProfileBuilder_ == null) {
            return encryptionProfile_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.getDefaultInstance() : encryptionProfile_;
          } else {
            return encryptionProfileBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         */
        public Builder setEncryptionProfile(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile value) {
          if (encryptionProfileBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            encryptionProfile_ = value;
          } else {
            encryptionProfileBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         */
        public Builder setEncryptionProfile(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.Builder builderForValue) {
          if (encryptionProfileBuilder_ == null) {
            encryptionProfile_ = builderForValue.build();
          } else {
            encryptionProfileBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         */
        public Builder mergeEncryptionProfile(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile value) {
          if (encryptionProfileBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
              encryptionProfile_ != null &&
              encryptionProfile_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.getDefaultInstance()) {
              getEncryptionProfileBuilder().mergeFrom(value);
            } else {
              encryptionProfile_ = value;
            }
          } else {
            encryptionProfileBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         */
        public Builder clearEncryptionProfile() {
          bitField0_ = (bitField0_ & ~0x00000002);
          encryptionProfile_ = null;
          if (encryptionProfileBuilder_ != null) {
            encryptionProfileBuilder_.dispose();
            encryptionProfileBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.Builder getEncryptionProfileBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getEncryptionProfileFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfileOrBuilder getEncryptionProfileOrBuilder() {
          if (encryptionProfileBuilder_ != null) {
            return encryptionProfileBuilder_.getMessageOrBuilder();
          } else {
            return encryptionProfile_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.getDefaultInstance() : encryptionProfile_;
          }
        }
        /**
         * <pre>
         * Профиль шифрования
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceTask.EncryptionProfile encryption_profile = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfileOrBuilder> 
            getEncryptionProfileFieldBuilder() {
          if (encryptionProfileBuilder_ == null) {
            encryptionProfileBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfile.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.EncryptionProfileOrBuilder>(
                    getEncryptionProfile(),
                    getParentForChildren(),
                    isClean());
            encryptionProfile_ = null;
          }
          return encryptionProfileBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceTask.Sl3)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceTask.Sl3)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int PRESET_FIELD_NUMBER = 7;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset preset_;
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the preset field is set.
     */
    @java.lang.Override
    public boolean hasPreset() {
      return preset_ != null;
    }
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The preset.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset getPreset() {
      return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
    }
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder getPresetOrBuilder() {
      return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
    }

    public static final int SIP_ACCOUNT_FIELD_NUMBER = 8;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount sipAccount_;
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
     * @return Whether the sipAccount field is set.
     */
    @java.lang.Override
    public boolean hasSipAccount() {
      return sipAccount_ != null;
    }
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
     * @return The sipAccount.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getSipAccount() {
      return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
    }
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder getSipAccountOrBuilder() {
      return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
    }

    public static final int SIP_ROOMS_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> sipRooms_;
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> getSipRoomsList() {
      return sipRooms_;
    }
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
        getSipRoomsOrBuilderList() {
      return sipRooms_;
    }
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    @java.lang.Override
    public int getSipRoomsCount() {
      return sipRooms_.size();
    }
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getSipRooms(int index) {
      return sipRooms_.get(index);
    }
    /**
     * <pre>
     * Список сип-номеров в помещениях.
     * # Диапазон: 0..10000
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder getSipRoomsOrBuilder(
        int index) {
      return sipRooms_.get(index);
    }

    public static final int GATE_FIELD_NUMBER = 10;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate gate_;
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
     * @return Whether the gate field is set.
     */
    @java.lang.Override
    public boolean hasGate() {
      return gate_ != null;
    }
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
     * @return The gate.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getGate() {
      return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
    }
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder getGateOrBuilder() {
      return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
    }

    public static final int RFIDS_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    @java.lang.Override
    public int getRfidsCount() {
      return rfids_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
      return rfids_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index) {
      return rfids_.get(index);
    }

    public static final int CODES_FIELD_NUMBER = 12;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_;
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
      return codes_;
    }
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList() {
      return codes_;
    }
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    @java.lang.Override
    public int getCodesCount() {
      return codes_.size();
    }
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
      return codes_.get(index);
    }
    /**
     * <pre>
     * Коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index) {
      return codes_.get(index);
    }

    public static final int NTP_TIMEZONE_FIELD_NUMBER = 13;
    @SuppressWarnings("serial")
    private volatile java.lang.Object ntpTimezone_ = "";
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The ntpTimezone.
     */
    @java.lang.Override
    public java.lang.String getNtpTimezone() {
      java.lang.Object ref = ntpTimezone_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        ntpTimezone_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for ntpTimezone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNtpTimezoneBytes() {
      java.lang.Object ref = ntpTimezone_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ntpTimezone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SL3_FIELD_NUMBER = 14;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 sl3_;
    /**
     * <pre>
     * Параметр Sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return Whether the sl3 field is set.
     */
    @java.lang.Override
    public boolean hasSl3() {
      return sl3_ != null;
    }
    /**
     * <pre>
     * Параметр Sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return The sl3.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getSl3() {
      return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
    }
    /**
     * <pre>
     * Параметр Sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder getSl3OrBuilder() {
      return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
    }

    public static final int EMERGENCY_CALL_SETTINGS_FIELD_NUMBER = 15;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings emergencyCallSettings_;
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return Whether the emergencyCallSettings field is set.
     */
    @java.lang.Override
    public boolean hasEmergencyCallSettings() {
      return emergencyCallSettings_ != null;
    }
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return The emergencyCallSettings.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getEmergencyCallSettings() {
      return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
    }
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder getEmergencyCallSettingsOrBuilder() {
      return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      if (preset_ != null) {
        output.writeMessage(7, getPreset());
      }
      if (sipAccount_ != null) {
        output.writeMessage(8, getSipAccount());
      }
      for (int i = 0; i < sipRooms_.size(); i++) {
        output.writeMessage(9, sipRooms_.get(i));
      }
      if (gate_ != null) {
        output.writeMessage(10, getGate());
      }
      for (int i = 0; i < rfids_.size(); i++) {
        output.writeMessage(11, rfids_.get(i));
      }
      for (int i = 0; i < codes_.size(); i++) {
        output.writeMessage(12, codes_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ntpTimezone_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, ntpTimezone_);
      }
      if (sl3_ != null) {
        output.writeMessage(14, getSl3());
      }
      if (emergencyCallSettings_ != null) {
        output.writeMessage(15, getEmergencyCallSettings());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      if (preset_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getPreset());
      }
      if (sipAccount_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getSipAccount());
      }
      for (int i = 0; i < sipRooms_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, sipRooms_.get(i));
      }
      if (gate_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getGate());
      }
      for (int i = 0; i < rfids_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, rfids_.get(i));
      }
      for (int i = 0; i < codes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, codes_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ntpTimezone_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, ntpTimezone_);
      }
      if (sl3_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getSl3());
      }
      if (emergencyCallSettings_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getEmergencyCallSettings());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (hasPreset() != other.hasPreset()) return false;
      if (hasPreset()) {
        if (!getPreset()
            .equals(other.getPreset())) return false;
      }
      if (hasSipAccount() != other.hasSipAccount()) return false;
      if (hasSipAccount()) {
        if (!getSipAccount()
            .equals(other.getSipAccount())) return false;
      }
      if (!getSipRoomsList()
          .equals(other.getSipRoomsList())) return false;
      if (hasGate() != other.hasGate()) return false;
      if (hasGate()) {
        if (!getGate()
            .equals(other.getGate())) return false;
      }
      if (!getRfidsList()
          .equals(other.getRfidsList())) return false;
      if (!getCodesList()
          .equals(other.getCodesList())) return false;
      if (!getNtpTimezone()
          .equals(other.getNtpTimezone())) return false;
      if (hasSl3() != other.hasSl3()) return false;
      if (hasSl3()) {
        if (!getSl3()
            .equals(other.getSl3())) return false;
      }
      if (hasEmergencyCallSettings() != other.hasEmergencyCallSettings()) return false;
      if (hasEmergencyCallSettings()) {
        if (!getEmergencyCallSettings()
            .equals(other.getEmergencyCallSettings())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (hasPreset()) {
        hash = (37 * hash) + PRESET_FIELD_NUMBER;
        hash = (53 * hash) + getPreset().hashCode();
      }
      if (hasSipAccount()) {
        hash = (37 * hash) + SIP_ACCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getSipAccount().hashCode();
      }
      if (getSipRoomsCount() > 0) {
        hash = (37 * hash) + SIP_ROOMS_FIELD_NUMBER;
        hash = (53 * hash) + getSipRoomsList().hashCode();
      }
      if (hasGate()) {
        hash = (37 * hash) + GATE_FIELD_NUMBER;
        hash = (53 * hash) + getGate().hashCode();
      }
      if (getRfidsCount() > 0) {
        hash = (37 * hash) + RFIDS_FIELD_NUMBER;
        hash = (53 * hash) + getRfidsList().hashCode();
      }
      if (getCodesCount() > 0) {
        hash = (37 * hash) + CODES_FIELD_NUMBER;
        hash = (53 * hash) + getCodesList().hashCode();
      }
      hash = (37 * hash) + NTP_TIMEZONE_FIELD_NUMBER;
      hash = (53 * hash) + getNtpTimezone().hashCode();
      if (hasSl3()) {
        hash = (37 * hash) + SL3_FIELD_NUMBER;
        hash = (53 * hash) + getSl3().hashCode();
      }
      if (hasEmergencyCallSettings()) {
        hash = (37 * hash) + EMERGENCY_CALL_SETTINGS_FIELD_NUMBER;
        hash = (53 * hash) + getEmergencyCallSettings().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *Задача на конфигурирование устройства.
     * Очередь key.device.configure_device
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ConfigureDeviceTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        preset_ = null;
        if (presetBuilder_ != null) {
          presetBuilder_.dispose();
          presetBuilder_ = null;
        }
        sipAccount_ = null;
        if (sipAccountBuilder_ != null) {
          sipAccountBuilder_.dispose();
          sipAccountBuilder_ = null;
        }
        if (sipRoomsBuilder_ == null) {
          sipRooms_ = java.util.Collections.emptyList();
        } else {
          sipRooms_ = null;
          sipRoomsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        gate_ = null;
        if (gateBuilder_ != null) {
          gateBuilder_.dispose();
          gateBuilder_ = null;
        }
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
        } else {
          rfids_ = null;
          rfidsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
        } else {
          codes_ = null;
          codesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        ntpTimezone_ = "";
        sl3_ = null;
        if (sl3Builder_ != null) {
          sl3Builder_.dispose();
          sl3Builder_ = null;
        }
        emergencyCallSettings_ = null;
        if (emergencyCallSettingsBuilder_ != null) {
          emergencyCallSettingsBuilder_.dispose();
          emergencyCallSettingsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask result) {
        if (sipRoomsBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0)) {
            sipRooms_ = java.util.Collections.unmodifiableList(sipRooms_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.sipRooms_ = sipRooms_;
        } else {
          result.sipRooms_ = sipRoomsBuilder_.build();
        }
        if (rfidsBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0)) {
            rfids_ = java.util.Collections.unmodifiableList(rfids_);
            bitField0_ = (bitField0_ & ~0x00000400);
          }
          result.rfids_ = rfids_;
        } else {
          result.rfids_ = rfidsBuilder_.build();
        }
        if (codesBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0)) {
            codes_ = java.util.Collections.unmodifiableList(codes_);
            bitField0_ = (bitField0_ & ~0x00000800);
          }
          result.codes_ = codes_;
        } else {
          result.codes_ = codesBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.preset_ = presetBuilder_ == null
              ? preset_
              : presetBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.sipAccount_ = sipAccountBuilder_ == null
              ? sipAccount_
              : sipAccountBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.gate_ = gateBuilder_ == null
              ? gate_
              : gateBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.ntpTimezone_ = ntpTimezone_;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.sl3_ = sl3Builder_ == null
              ? sl3_
              : sl3Builder_.build();
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.emergencyCallSettings_ = emergencyCallSettingsBuilder_ == null
              ? emergencyCallSettings_
              : emergencyCallSettingsBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (other.hasPreset()) {
          mergePreset(other.getPreset());
        }
        if (other.hasSipAccount()) {
          mergeSipAccount(other.getSipAccount());
        }
        if (sipRoomsBuilder_ == null) {
          if (!other.sipRooms_.isEmpty()) {
            if (sipRooms_.isEmpty()) {
              sipRooms_ = other.sipRooms_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureSipRoomsIsMutable();
              sipRooms_.addAll(other.sipRooms_);
            }
            onChanged();
          }
        } else {
          if (!other.sipRooms_.isEmpty()) {
            if (sipRoomsBuilder_.isEmpty()) {
              sipRoomsBuilder_.dispose();
              sipRoomsBuilder_ = null;
              sipRooms_ = other.sipRooms_;
              bitField0_ = (bitField0_ & ~0x00000100);
              sipRoomsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSipRoomsFieldBuilder() : null;
            } else {
              sipRoomsBuilder_.addAllMessages(other.sipRooms_);
            }
          }
        }
        if (other.hasGate()) {
          mergeGate(other.getGate());
        }
        if (rfidsBuilder_ == null) {
          if (!other.rfids_.isEmpty()) {
            if (rfids_.isEmpty()) {
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000400);
            } else {
              ensureRfidsIsMutable();
              rfids_.addAll(other.rfids_);
            }
            onChanged();
          }
        } else {
          if (!other.rfids_.isEmpty()) {
            if (rfidsBuilder_.isEmpty()) {
              rfidsBuilder_.dispose();
              rfidsBuilder_ = null;
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000400);
              rfidsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRfidsFieldBuilder() : null;
            } else {
              rfidsBuilder_.addAllMessages(other.rfids_);
            }
          }
        }
        if (codesBuilder_ == null) {
          if (!other.codes_.isEmpty()) {
            if (codes_.isEmpty()) {
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000800);
            } else {
              ensureCodesIsMutable();
              codes_.addAll(other.codes_);
            }
            onChanged();
          }
        } else {
          if (!other.codes_.isEmpty()) {
            if (codesBuilder_.isEmpty()) {
              codesBuilder_.dispose();
              codesBuilder_ = null;
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000800);
              codesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCodesFieldBuilder() : null;
            } else {
              codesBuilder_.addAllMessages(other.codes_);
            }
          }
        }
        if (!other.getNtpTimezone().isEmpty()) {
          ntpTimezone_ = other.ntpTimezone_;
          bitField0_ |= 0x00001000;
          onChanged();
        }
        if (other.hasSl3()) {
          mergeSl3(other.getSl3());
        }
        if (other.hasEmergencyCallSettings()) {
          mergeEmergencyCallSettings(other.getEmergencyCallSettings());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                input.readMessage(
                    getPresetFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getSipAccountFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.parser(),
                        extensionRegistry);
                if (sipRoomsBuilder_ == null) {
                  ensureSipRoomsIsMutable();
                  sipRooms_.add(m);
                } else {
                  sipRoomsBuilder_.addMessage(m);
                }
                break;
              } // case 74
              case 82: {
                input.readMessage(
                    getGateFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 90: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.parser(),
                        extensionRegistry);
                if (rfidsBuilder_ == null) {
                  ensureRfidsIsMutable();
                  rfids_.add(m);
                } else {
                  rfidsBuilder_.addMessage(m);
                }
                break;
              } // case 90
              case 98: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.parser(),
                        extensionRegistry);
                if (codesBuilder_ == null) {
                  ensureCodesIsMutable();
                  codes_.add(m);
                } else {
                  codesBuilder_.addMessage(m);
                }
                break;
              } // case 98
              case 106: {
                ntpTimezone_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    getSl3FieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    getEmergencyCallSettingsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00004000;
                break;
              } // case 122
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset preset_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder> presetBuilder_;
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the preset field is set.
       */
      public boolean hasPreset() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The preset.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset getPreset() {
        if (presetBuilder_ == null) {
          return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
        } else {
          return presetBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setPreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset value) {
        if (presetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          preset_ = value;
        } else {
          presetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setPreset(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder builderForValue) {
        if (presetBuilder_ == null) {
          preset_ = builderForValue.build();
        } else {
          presetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergePreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset value) {
        if (presetBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            preset_ != null &&
            preset_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance()) {
            getPresetBuilder().mergeFrom(value);
          } else {
            preset_ = value;
          }
        } else {
          presetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearPreset() {
        bitField0_ = (bitField0_ & ~0x00000040);
        preset_ = null;
        if (presetBuilder_ != null) {
          presetBuilder_.dispose();
          presetBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder getPresetBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getPresetFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder getPresetOrBuilder() {
        if (presetBuilder_ != null) {
          return presetBuilder_.getMessageOrBuilder();
        } else {
          return preset_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
        }
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder> 
          getPresetFieldBuilder() {
        if (presetBuilder_ == null) {
          presetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder>(
                  getPreset(),
                  getParentForChildren(),
                  isClean());
          preset_ = null;
        }
        return presetBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount sipAccount_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder> sipAccountBuilder_;
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       * @return Whether the sipAccount field is set.
       */
      public boolean hasSipAccount() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       * @return The sipAccount.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getSipAccount() {
        if (sipAccountBuilder_ == null) {
          return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
        } else {
          return sipAccountBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       */
      public Builder setSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount value) {
        if (sipAccountBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sipAccount_ = value;
        } else {
          sipAccountBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       */
      public Builder setSipAccount(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder builderForValue) {
        if (sipAccountBuilder_ == null) {
          sipAccount_ = builderForValue.build();
        } else {
          sipAccountBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       */
      public Builder mergeSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount value) {
        if (sipAccountBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            sipAccount_ != null &&
            sipAccount_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance()) {
            getSipAccountBuilder().mergeFrom(value);
          } else {
            sipAccount_ = value;
          }
        } else {
          sipAccountBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       */
      public Builder clearSipAccount() {
        bitField0_ = (bitField0_ & ~0x00000080);
        sipAccount_ = null;
        if (sipAccountBuilder_ != null) {
          sipAccountBuilder_.dispose();
          sipAccountBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder getSipAccountBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getSipAccountFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder getSipAccountOrBuilder() {
        if (sipAccountBuilder_ != null) {
          return sipAccountBuilder_.getMessageOrBuilder();
        } else {
          return sipAccount_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
        }
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder> 
          getSipAccountFieldBuilder() {
        if (sipAccountBuilder_ == null) {
          sipAccountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder>(
                  getSipAccount(),
                  getParentForChildren(),
                  isClean());
          sipAccount_ = null;
        }
        return sipAccountBuilder_;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> sipRooms_ =
        java.util.Collections.emptyList();
      private void ensureSipRoomsIsMutable() {
        if (!((bitField0_ & 0x00000100) != 0)) {
          sipRooms_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom>(sipRooms_);
          bitField0_ |= 0x00000100;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> sipRoomsBuilder_;

      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> getSipRoomsList() {
        if (sipRoomsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sipRooms_);
        } else {
          return sipRoomsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public int getSipRoomsCount() {
        if (sipRoomsBuilder_ == null) {
          return sipRooms_.size();
        } else {
          return sipRoomsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getSipRooms(int index) {
        if (sipRoomsBuilder_ == null) {
          return sipRooms_.get(index);
        } else {
          return sipRoomsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder setSipRooms(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom value) {
        if (sipRoomsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSipRoomsIsMutable();
          sipRooms_.set(index, value);
          onChanged();
        } else {
          sipRoomsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder setSipRooms(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder builderForValue) {
        if (sipRoomsBuilder_ == null) {
          ensureSipRoomsIsMutable();
          sipRooms_.set(index, builderForValue.build());
          onChanged();
        } else {
          sipRoomsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder addSipRooms(ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom value) {
        if (sipRoomsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSipRoomsIsMutable();
          sipRooms_.add(value);
          onChanged();
        } else {
          sipRoomsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder addSipRooms(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom value) {
        if (sipRoomsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSipRoomsIsMutable();
          sipRooms_.add(index, value);
          onChanged();
        } else {
          sipRoomsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder addSipRooms(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder builderForValue) {
        if (sipRoomsBuilder_ == null) {
          ensureSipRoomsIsMutable();
          sipRooms_.add(builderForValue.build());
          onChanged();
        } else {
          sipRoomsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder addSipRooms(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder builderForValue) {
        if (sipRoomsBuilder_ == null) {
          ensureSipRoomsIsMutable();
          sipRooms_.add(index, builderForValue.build());
          onChanged();
        } else {
          sipRoomsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder addAllSipRooms(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> values) {
        if (sipRoomsBuilder_ == null) {
          ensureSipRoomsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sipRooms_);
          onChanged();
        } else {
          sipRoomsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder clearSipRooms() {
        if (sipRoomsBuilder_ == null) {
          sipRooms_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          sipRoomsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public Builder removeSipRooms(int index) {
        if (sipRoomsBuilder_ == null) {
          ensureSipRoomsIsMutable();
          sipRooms_.remove(index);
          onChanged();
        } else {
          sipRoomsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder getSipRoomsBuilder(
          int index) {
        return getSipRoomsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder getSipRoomsOrBuilder(
          int index) {
        if (sipRoomsBuilder_ == null) {
          return sipRooms_.get(index);  } else {
          return sipRoomsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
           getSipRoomsOrBuilderList() {
        if (sipRoomsBuilder_ != null) {
          return sipRoomsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sipRooms_);
        }
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder addSipRoomsBuilder() {
        return getSipRoomsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.getDefaultInstance());
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder addSipRoomsBuilder(
          int index) {
        return getSipRoomsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.getDefaultInstance());
      }
      /**
       * <pre>
       * Список сип-номеров в помещениях.
       * # Диапазон: 0..10000
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.SipRoom sip_rooms = 9;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder> 
           getSipRoomsBuilderList() {
        return getSipRoomsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
          getSipRoomsFieldBuilder() {
        if (sipRoomsBuilder_ == null) {
          sipRoomsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder>(
                  sipRooms_,
                  ((bitField0_ & 0x00000100) != 0),
                  getParentForChildren(),
                  isClean());
          sipRooms_ = null;
        }
        return sipRoomsBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate gate_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder> gateBuilder_;
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       * @return Whether the gate field is set.
       */
      public boolean hasGate() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       * @return The gate.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getGate() {
        if (gateBuilder_ == null) {
          return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
        } else {
          return gateBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       */
      public Builder setGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate value) {
        if (gateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gate_ = value;
        } else {
          gateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       */
      public Builder setGate(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder builderForValue) {
        if (gateBuilder_ == null) {
          gate_ = builderForValue.build();
        } else {
          gateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       */
      public Builder mergeGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate value) {
        if (gateBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0) &&
            gate_ != null &&
            gate_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance()) {
            getGateBuilder().mergeFrom(value);
          } else {
            gate_ = value;
          }
        } else {
          gateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       */
      public Builder clearGate() {
        bitField0_ = (bitField0_ & ~0x00000200);
        gate_ = null;
        if (gateBuilder_ != null) {
          gateBuilder_.dispose();
          gateBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder getGateBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getGateFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder getGateOrBuilder() {
        if (gateBuilder_ != null) {
          return gateBuilder_.getMessageOrBuilder();
        } else {
          return gate_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
        }
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder> 
          getGateFieldBuilder() {
        if (gateBuilder_ == null) {
          gateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder>(
                  getGate(),
                  getParentForChildren(),
                  isClean());
          gate_ = null;
        }
        return gateBuilder_;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_ =
        java.util.Collections.emptyList();
      private void ensureRfidsIsMutable() {
        if (!((bitField0_ & 0x00000400) != 0)) {
          rfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid>(rfids_);
          bitField0_ |= 0x00000400;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> rfidsBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
        if (rfidsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rfids_);
        } else {
          return rfidsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public int getRfidsCount() {
        if (rfidsBuilder_ == null) {
          return rfids_.size();
        } else {
          return rfidsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);
        } else {
          return rfidsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.set(index, value);
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.set(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder addRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(index, value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder addRfids(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder addAllRfids(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> values) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rfids_);
          onChanged();
        } else {
          rfidsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder clearRfids() {
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
          onChanged();
        } else {
          rfidsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public Builder removeRfids(int index) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.remove(index);
          onChanged();
        } else {
          rfidsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder getRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
          int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);  } else {
          return rfidsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
           getRfidsOrBuilderList() {
        if (rfidsBuilder_ != null) {
          return rfidsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rfids_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder() {
        return getRfidsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 11;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder> 
           getRfidsBuilderList() {
        return getRfidsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
          getRfidsFieldBuilder() {
        if (rfidsBuilder_ == null) {
          rfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder>(
                  rfids_,
                  ((bitField0_ & 0x00000400) != 0),
                  getParentForChildren(),
                  isClean());
          rfids_ = null;
        }
        return rfidsBuilder_;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_ =
        java.util.Collections.emptyList();
      private void ensureCodesIsMutable() {
        if (!((bitField0_ & 0x00000800) != 0)) {
          codes_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code>(codes_);
          bitField0_ |= 0x00000800;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> codesBuilder_;

      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
        if (codesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(codes_);
        } else {
          return codesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public int getCodesCount() {
        if (codesBuilder_ == null) {
          return codes_.size();
        } else {
          return codesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);
        } else {
          return codesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.set(index, value);
          onChanged();
        } else {
          codesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.set(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder addCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(value);
          onChanged();
        } else {
          codesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(index, value);
          onChanged();
        } else {
          codesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder addCodes(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder addAllCodes(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> values) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, codes_);
          onChanged();
        } else {
          codesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder clearCodes() {
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000800);
          onChanged();
        } else {
          codesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public Builder removeCodes(int index) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.remove(index);
          onChanged();
        } else {
          codesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder getCodesBuilder(
          int index) {
        return getCodesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
          int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);  } else {
          return codesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
           getCodesOrBuilderList() {
        if (codesBuilder_ != null) {
          return codesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(codes_);
        }
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder() {
        return getCodesFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder(
          int index) {
        return getCodesFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * Коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 12;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder> 
           getCodesBuilderList() {
        return getCodesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
          getCodesFieldBuilder() {
        if (codesBuilder_ == null) {
          codesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder>(
                  codes_,
                  ((bitField0_ & 0x00000800) != 0),
                  getParentForChildren(),
                  isClean());
          codes_ = null;
        }
        return codesBuilder_;
      }

      private java.lang.Object ntpTimezone_ = "";
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The ntpTimezone.
       */
      public java.lang.String getNtpTimezone() {
        java.lang.Object ref = ntpTimezone_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ntpTimezone_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for ntpTimezone.
       */
      public com.google.protobuf.ByteString
          getNtpTimezoneBytes() {
        java.lang.Object ref = ntpTimezone_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ntpTimezone_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The ntpTimezone to set.
       * @return This builder for chaining.
       */
      public Builder setNtpTimezone(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ntpTimezone_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearNtpTimezone() {
        ntpTimezone_ = getDefaultInstance().getNtpTimezone();
        bitField0_ = (bitField0_ & ~0x00001000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>string ntp_timezone = 13 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for ntpTimezone to set.
       * @return This builder for chaining.
       */
      public Builder setNtpTimezoneBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ntpTimezone_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 sl3_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder> sl3Builder_;
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       * @return Whether the sl3 field is set.
       */
      public boolean hasSl3() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       * @return The sl3.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getSl3() {
        if (sl3Builder_ == null) {
          return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
        } else {
          return sl3Builder_.getMessage();
        }
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder setSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 value) {
        if (sl3Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sl3_ = value;
        } else {
          sl3Builder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder setSl3(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder builderForValue) {
        if (sl3Builder_ == null) {
          sl3_ = builderForValue.build();
        } else {
          sl3Builder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder mergeSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 value) {
        if (sl3Builder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            sl3_ != null &&
            sl3_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance()) {
            getSl3Builder().mergeFrom(value);
          } else {
            sl3_ = value;
          }
        } else {
          sl3Builder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder clearSl3() {
        bitField0_ = (bitField0_ & ~0x00002000);
        sl3_ = null;
        if (sl3Builder_ != null) {
          sl3Builder_.dispose();
          sl3Builder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder getSl3Builder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getSl3FieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder getSl3OrBuilder() {
        if (sl3Builder_ != null) {
          return sl3Builder_.getMessageOrBuilder();
        } else {
          return sl3_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
        }
      }
      /**
       * <pre>
       * Параметр Sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder> 
          getSl3FieldBuilder() {
        if (sl3Builder_ == null) {
          sl3Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder>(
                  getSl3(),
                  getParentForChildren(),
                  isClean());
          sl3_ = null;
        }
        return sl3Builder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings emergencyCallSettings_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder> emergencyCallSettingsBuilder_;
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       * @return Whether the emergencyCallSettings field is set.
       */
      public boolean hasEmergencyCallSettings() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       * @return The emergencyCallSettings.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getEmergencyCallSettings() {
        if (emergencyCallSettingsBuilder_ == null) {
          return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
        } else {
          return emergencyCallSettingsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder setEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings value) {
        if (emergencyCallSettingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          emergencyCallSettings_ = value;
        } else {
          emergencyCallSettingsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder setEmergencyCallSettings(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder builderForValue) {
        if (emergencyCallSettingsBuilder_ == null) {
          emergencyCallSettings_ = builderForValue.build();
        } else {
          emergencyCallSettingsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder mergeEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings value) {
        if (emergencyCallSettingsBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0) &&
            emergencyCallSettings_ != null &&
            emergencyCallSettings_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance()) {
            getEmergencyCallSettingsBuilder().mergeFrom(value);
          } else {
            emergencyCallSettings_ = value;
          }
        } else {
          emergencyCallSettingsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder clearEmergencyCallSettings() {
        bitField0_ = (bitField0_ & ~0x00004000);
        emergencyCallSettings_ = null;
        if (emergencyCallSettingsBuilder_ != null) {
          emergencyCallSettingsBuilder_.dispose();
          emergencyCallSettingsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder getEmergencyCallSettingsBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getEmergencyCallSettingsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder getEmergencyCallSettingsOrBuilder() {
        if (emergencyCallSettingsBuilder_ != null) {
          return emergencyCallSettingsBuilder_.getMessageOrBuilder();
        } else {
          return emergencyCallSettings_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
        }
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder> 
          getEmergencyCallSettingsFieldBuilder() {
        if (emergencyCallSettingsBuilder_ == null) {
          emergencyCallSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder>(
                  getEmergencyCallSettings(),
                  getParentForChildren(),
                  isClean());
          emergencyCallSettings_ = null;
        }
        return emergencyCallSettingsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EmergencyCallSettingsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.EmergencyCallSettings)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Возможность вызова экстренной службы
     * </pre>
     *
     * <code>bool is_call_available = 1;</code>
     * @return The isCallAvailable.
     */
    boolean getIsCallAvailable();

    /**
     * <pre>
     * Параметры вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
     * @return Whether the emergencyCallParameter field is set.
     */
    boolean hasEmergencyCallParameter();
    /**
     * <pre>
     * Параметры вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
     * @return The emergencyCallParameter.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter getEmergencyCallParameter();
    /**
     * <pre>
     * Параметры вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameterOrBuilder getEmergencyCallParameterOrBuilder();
  }
  /**
   * <pre>
   * Настройки вызова экстренной службы
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.EmergencyCallSettings}
   */
  public static final class EmergencyCallSettings extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.EmergencyCallSettings)
      EmergencyCallSettingsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EmergencyCallSettings.newBuilder() to construct.
    private EmergencyCallSettings(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EmergencyCallSettings() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder.class);
    }

    public interface EmergencyCallParameterOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * АБС-номер экстренной службы.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The emergencyNumber.
       */
      java.lang.String getEmergencyNumber();
      /**
       * <pre>
       * АБС-номер экстренной службы.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for emergencyNumber.
       */
      com.google.protobuf.ByteString
          getEmergencyNumberBytes();

      /**
       * <pre>
       * Исходящий ABC-номер домофона.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The abcNumber.
       */
      java.lang.String getAbcNumber();
      /**
       * <pre>
       * Исходящий ABC-номер домофона.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for abcNumber.
       */
      com.google.protobuf.ByteString
          getAbcNumberBytes();

      /**
       * <pre>
       * Адрес SIP-транка.
       * # Диапазон: 5..250
       * </pre>
       *
       * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sipTrunkHost.
       */
      java.lang.String getSipTrunkHost();
      /**
       * <pre>
       * Адрес SIP-транка.
       * # Диапазон: 5..250
       * </pre>
       *
       * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sipTrunkHost.
       */
      com.google.protobuf.ByteString
          getSipTrunkHostBytes();

      /**
       * <pre>
       * Регион вызова экстренной службы.
       * # Диапазон: 3..32
       * </pre>
       *
       * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The destinationName.
       */
      java.lang.String getDestinationName();
      /**
       * <pre>
       * Регион вызова экстренной службы.
       * # Диапазон: 3..32
       * </pre>
       *
       * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for destinationName.
       */
      com.google.protobuf.ByteString
          getDestinationNameBytes();
    }
    /**
     * <pre>
     * Параметры вызова экстренной службы
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter}
     */
    public static final class EmergencyCallParameter extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter)
        EmergencyCallParameterOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use EmergencyCallParameter.newBuilder() to construct.
      private EmergencyCallParameter(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private EmergencyCallParameter() {
        emergencyNumber_ = "";
        abcNumber_ = "";
        sipTrunkHost_ = "";
        destinationName_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.Builder.class);
      }

      public static final int EMERGENCY_NUMBER_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object emergencyNumber_ = "";
      /**
       * <pre>
       * АБС-номер экстренной службы.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The emergencyNumber.
       */
      @java.lang.Override
      public java.lang.String getEmergencyNumber() {
        java.lang.Object ref = emergencyNumber_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          emergencyNumber_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * АБС-номер экстренной службы.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for emergencyNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEmergencyNumberBytes() {
        java.lang.Object ref = emergencyNumber_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          emergencyNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int ABC_NUMBER_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object abcNumber_ = "";
      /**
       * <pre>
       * Исходящий ABC-номер домофона.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The abcNumber.
       */
      @java.lang.Override
      public java.lang.String getAbcNumber() {
        java.lang.Object ref = abcNumber_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          abcNumber_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Исходящий ABC-номер домофона.
       * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
       * </pre>
       *
       * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for abcNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getAbcNumberBytes() {
        java.lang.Object ref = abcNumber_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          abcNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int SIP_TRUNK_HOST_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private volatile java.lang.Object sipTrunkHost_ = "";
      /**
       * <pre>
       * Адрес SIP-транка.
       * # Диапазон: 5..250
       * </pre>
       *
       * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sipTrunkHost.
       */
      @java.lang.Override
      public java.lang.String getSipTrunkHost() {
        java.lang.Object ref = sipTrunkHost_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sipTrunkHost_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Адрес SIP-транка.
       * # Диапазон: 5..250
       * </pre>
       *
       * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sipTrunkHost.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSipTrunkHostBytes() {
        java.lang.Object ref = sipTrunkHost_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sipTrunkHost_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int DESTINATION_NAME_FIELD_NUMBER = 4;
      @SuppressWarnings("serial")
      private volatile java.lang.Object destinationName_ = "";
      /**
       * <pre>
       * Регион вызова экстренной службы.
       * # Диапазон: 3..32
       * </pre>
       *
       * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The destinationName.
       */
      @java.lang.Override
      public java.lang.String getDestinationName() {
        java.lang.Object ref = destinationName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          destinationName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Регион вызова экстренной службы.
       * # Диапазон: 3..32
       * </pre>
       *
       * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for destinationName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDestinationNameBytes() {
        java.lang.Object ref = destinationName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          destinationName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(emergencyNumber_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, emergencyNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(abcNumber_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, abcNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sipTrunkHost_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sipTrunkHost_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(destinationName_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, destinationName_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(emergencyNumber_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, emergencyNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(abcNumber_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, abcNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sipTrunkHost_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, sipTrunkHost_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(destinationName_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, destinationName_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (!getEmergencyNumber()
            .equals(other.getEmergencyNumber())) return false;
        if (!getAbcNumber()
            .equals(other.getAbcNumber())) return false;
        if (!getSipTrunkHost()
            .equals(other.getSipTrunkHost())) return false;
        if (!getDestinationName()
            .equals(other.getDestinationName())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + EMERGENCY_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getEmergencyNumber().hashCode();
        hash = (37 * hash) + ABC_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getAbcNumber().hashCode();
        hash = (37 * hash) + SIP_TRUNK_HOST_FIELD_NUMBER;
        hash = (53 * hash) + getSipTrunkHost().hashCode();
        hash = (37 * hash) + DESTINATION_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getDestinationName().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameterOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          emergencyNumber_ = "";
          abcNumber_ = "";
          sipTrunkHost_ = "";
          destinationName_ = "";
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.emergencyNumber_ = emergencyNumber_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.abcNumber_ = abcNumber_;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.sipTrunkHost_ = sipTrunkHost_;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.destinationName_ = destinationName_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.getDefaultInstance()) return this;
          if (!other.getEmergencyNumber().isEmpty()) {
            emergencyNumber_ = other.emergencyNumber_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (!other.getAbcNumber().isEmpty()) {
            abcNumber_ = other.abcNumber_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (!other.getSipTrunkHost().isEmpty()) {
            sipTrunkHost_ = other.sipTrunkHost_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (!other.getDestinationName().isEmpty()) {
            destinationName_ = other.destinationName_;
            bitField0_ |= 0x00000008;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private java.lang.Object emergencyNumber_ = "";
        /**
         * <pre>
         * АБС-номер экстренной службы.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The emergencyNumber.
         */
        public java.lang.String getEmergencyNumber() {
          java.lang.Object ref = emergencyNumber_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            emergencyNumber_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * АБС-номер экстренной службы.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for emergencyNumber.
         */
        public com.google.protobuf.ByteString
            getEmergencyNumberBytes() {
          java.lang.Object ref = emergencyNumber_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            emergencyNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * АБС-номер экстренной службы.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The emergencyNumber to set.
         * @return This builder for chaining.
         */
        public Builder setEmergencyNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          emergencyNumber_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * АБС-номер экстренной службы.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearEmergencyNumber() {
          emergencyNumber_ = getDefaultInstance().getEmergencyNumber();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * АБС-номер экстренной службы.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string emergency_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for emergencyNumber to set.
         * @return This builder for chaining.
         */
        public Builder setEmergencyNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          emergencyNumber_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private java.lang.Object abcNumber_ = "";
        /**
         * <pre>
         * Исходящий ABC-номер домофона.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The abcNumber.
         */
        public java.lang.String getAbcNumber() {
          java.lang.Object ref = abcNumber_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            abcNumber_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Исходящий ABC-номер домофона.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for abcNumber.
         */
        public com.google.protobuf.ByteString
            getAbcNumberBytes() {
          java.lang.Object ref = abcNumber_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            abcNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Исходящий ABC-номер домофона.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The abcNumber to set.
         * @return This builder for chaining.
         */
        public Builder setAbcNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          abcNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Исходящий ABC-номер домофона.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearAbcNumber() {
          abcNumber_ = getDefaultInstance().getAbcNumber();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Исходящий ABC-номер домофона.
         * # Паттерн: /^&#92;+[1-9][0-9]{10}$/
         * </pre>
         *
         * <code>string abc_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for abcNumber to set.
         * @return This builder for chaining.
         */
        public Builder setAbcNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          abcNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }

        private java.lang.Object sipTrunkHost_ = "";
        /**
         * <pre>
         * Адрес SIP-транка.
         * # Диапазон: 5..250
         * </pre>
         *
         * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The sipTrunkHost.
         */
        public java.lang.String getSipTrunkHost() {
          java.lang.Object ref = sipTrunkHost_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            sipTrunkHost_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Адрес SIP-транка.
         * # Диапазон: 5..250
         * </pre>
         *
         * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for sipTrunkHost.
         */
        public com.google.protobuf.ByteString
            getSipTrunkHostBytes() {
          java.lang.Object ref = sipTrunkHost_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            sipTrunkHost_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Адрес SIP-транка.
         * # Диапазон: 5..250
         * </pre>
         *
         * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The sipTrunkHost to set.
         * @return This builder for chaining.
         */
        public Builder setSipTrunkHost(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          sipTrunkHost_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Адрес SIP-транка.
         * # Диапазон: 5..250
         * </pre>
         *
         * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearSipTrunkHost() {
          sipTrunkHost_ = getDefaultInstance().getSipTrunkHost();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Адрес SIP-транка.
         * # Диапазон: 5..250
         * </pre>
         *
         * <code>string sip_trunk_host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for sipTrunkHost to set.
         * @return This builder for chaining.
         */
        public Builder setSipTrunkHostBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          sipTrunkHost_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }

        private java.lang.Object destinationName_ = "";
        /**
         * <pre>
         * Регион вызова экстренной службы.
         * # Диапазон: 3..32
         * </pre>
         *
         * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The destinationName.
         */
        public java.lang.String getDestinationName() {
          java.lang.Object ref = destinationName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            destinationName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Регион вызова экстренной службы.
         * # Диапазон: 3..32
         * </pre>
         *
         * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for destinationName.
         */
        public com.google.protobuf.ByteString
            getDestinationNameBytes() {
          java.lang.Object ref = destinationName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            destinationName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Регион вызова экстренной службы.
         * # Диапазон: 3..32
         * </pre>
         *
         * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The destinationName to set.
         * @return This builder for chaining.
         */
        public Builder setDestinationName(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          destinationName_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Регион вызова экстренной службы.
         * # Диапазон: 3..32
         * </pre>
         *
         * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearDestinationName() {
          destinationName_ = getDefaultInstance().getDestinationName();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Регион вызова экстренной службы.
         * # Диапазон: 3..32
         * </pre>
         *
         * <code>string destination_name = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for destinationName to set.
         * @return This builder for chaining.
         */
        public Builder setDestinationNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          destinationName_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int IS_CALL_AVAILABLE_FIELD_NUMBER = 1;
    private boolean isCallAvailable_ = false;
    /**
     * <pre>
     * Возможность вызова экстренной службы
     * </pre>
     *
     * <code>bool is_call_available = 1;</code>
     * @return The isCallAvailable.
     */
    @java.lang.Override
    public boolean getIsCallAvailable() {
      return isCallAvailable_;
    }

    public static final int EMERGENCY_CALL_PARAMETER_FIELD_NUMBER = 2;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter emergencyCallParameter_;
    /**
     * <pre>
     * Параметры вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
     * @return Whether the emergencyCallParameter field is set.
     */
    @java.lang.Override
    public boolean hasEmergencyCallParameter() {
      return emergencyCallParameter_ != null;
    }
    /**
     * <pre>
     * Параметры вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
     * @return The emergencyCallParameter.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter getEmergencyCallParameter() {
      return emergencyCallParameter_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.getDefaultInstance() : emergencyCallParameter_;
    }
    /**
     * <pre>
     * Параметры вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameterOrBuilder getEmergencyCallParameterOrBuilder() {
      return emergencyCallParameter_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.getDefaultInstance() : emergencyCallParameter_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (isCallAvailable_ != false) {
        output.writeBool(1, isCallAvailable_);
      }
      if (emergencyCallParameter_ != null) {
        output.writeMessage(2, getEmergencyCallParameter());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (isCallAvailable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, isCallAvailable_);
      }
      if (emergencyCallParameter_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getEmergencyCallParameter());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getIsCallAvailable()
          != other.getIsCallAvailable()) return false;
      if (hasEmergencyCallParameter() != other.hasEmergencyCallParameter()) return false;
      if (hasEmergencyCallParameter()) {
        if (!getEmergencyCallParameter()
            .equals(other.getEmergencyCallParameter())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + IS_CALL_AVAILABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsCallAvailable());
      if (hasEmergencyCallParameter()) {
        hash = (37 * hash) + EMERGENCY_CALL_PARAMETER_FIELD_NUMBER;
        hash = (53 * hash) + getEmergencyCallParameter().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.EmergencyCallSettings}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.EmergencyCallSettings)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        isCallAvailable_ = false;
        emergencyCallParameter_ = null;
        if (emergencyCallParameterBuilder_ != null) {
          emergencyCallParameterBuilder_.dispose();
          emergencyCallParameterBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_EmergencyCallSettings_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.isCallAvailable_ = isCallAvailable_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.emergencyCallParameter_ = emergencyCallParameterBuilder_ == null
              ? emergencyCallParameter_
              : emergencyCallParameterBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance()) return this;
        if (other.getIsCallAvailable() != false) {
          setIsCallAvailable(other.getIsCallAvailable());
        }
        if (other.hasEmergencyCallParameter()) {
          mergeEmergencyCallParameter(other.getEmergencyCallParameter());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private boolean isCallAvailable_ ;
      /**
       * <pre>
       * Возможность вызова экстренной службы
       * </pre>
       *
       * <code>bool is_call_available = 1;</code>
       * @return The isCallAvailable.
       */
      @java.lang.Override
      public boolean getIsCallAvailable() {
        return isCallAvailable_;
      }
      /**
       * <pre>
       * Возможность вызова экстренной службы
       * </pre>
       *
       * <code>bool is_call_available = 1;</code>
       * @param value The isCallAvailable to set.
       * @return This builder for chaining.
       */
      public Builder setIsCallAvailable(boolean value) {

        isCallAvailable_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Возможность вызова экстренной службы
       * </pre>
       *
       * <code>bool is_call_available = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsCallAvailable() {
        bitField0_ = (bitField0_ & ~0x00000001);
        isCallAvailable_ = false;
        onChanged();
        return this;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter emergencyCallParameter_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameterOrBuilder> emergencyCallParameterBuilder_;
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       * @return Whether the emergencyCallParameter field is set.
       */
      public boolean hasEmergencyCallParameter() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       * @return The emergencyCallParameter.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter getEmergencyCallParameter() {
        if (emergencyCallParameterBuilder_ == null) {
          return emergencyCallParameter_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.getDefaultInstance() : emergencyCallParameter_;
        } else {
          return emergencyCallParameterBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       */
      public Builder setEmergencyCallParameter(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter value) {
        if (emergencyCallParameterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          emergencyCallParameter_ = value;
        } else {
          emergencyCallParameterBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       */
      public Builder setEmergencyCallParameter(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.Builder builderForValue) {
        if (emergencyCallParameterBuilder_ == null) {
          emergencyCallParameter_ = builderForValue.build();
        } else {
          emergencyCallParameterBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       */
      public Builder mergeEmergencyCallParameter(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter value) {
        if (emergencyCallParameterBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            emergencyCallParameter_ != null &&
            emergencyCallParameter_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.getDefaultInstance()) {
            getEmergencyCallParameterBuilder().mergeFrom(value);
          } else {
            emergencyCallParameter_ = value;
          }
        } else {
          emergencyCallParameterBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       */
      public Builder clearEmergencyCallParameter() {
        bitField0_ = (bitField0_ & ~0x00000002);
        emergencyCallParameter_ = null;
        if (emergencyCallParameterBuilder_ != null) {
          emergencyCallParameterBuilder_.dispose();
          emergencyCallParameterBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.Builder getEmergencyCallParameterBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getEmergencyCallParameterFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameterOrBuilder getEmergencyCallParameterOrBuilder() {
        if (emergencyCallParameterBuilder_ != null) {
          return emergencyCallParameterBuilder_.getMessageOrBuilder();
        } else {
          return emergencyCallParameter_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.getDefaultInstance() : emergencyCallParameter_;
        }
      }
      /**
       * <pre>
       * Параметры вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings.EmergencyCallParameter emergency_call_parameter = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameterOrBuilder> 
          getEmergencyCallParameterFieldBuilder() {
        if (emergencyCallParameterBuilder_ == null) {
          emergencyCallParameterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameter.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.EmergencyCallParameterOrBuilder>(
                  getEmergencyCallParameter(),
                  getParentForChildren(),
                  isClean());
          emergencyCallParameter_ = null;
        }
        return emergencyCallParameterBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.EmergencyCallSettings)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.EmergencyCallSettings)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ConfigureDeviceResultTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceResultTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the configuredAt field is set.
     */
    boolean hasConfiguredAt();
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The configuredAt.
     */
    com.google.protobuf.Timestamp getConfiguredAt();
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getConfiguredAtOrBuilder();

    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The hardwareVersion.
     */
    java.lang.String getHardwareVersion();
    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The bytes for hardwareVersion.
     */
    com.google.protobuf.ByteString
        getHardwareVersionBytes();

    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The firmwareVersion.
     */
    java.lang.String getFirmwareVersion();
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The bytes for firmwareVersion.
     */
    com.google.protobuf.ByteString
        getFirmwareVersionBytes();

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
     * @return Whether the settings field is set.
     */
    boolean hasSettings();
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
     * @return The settings.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings getSettings();
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.SettingsOrBuilder getSettingsOrBuilder();
  }
  /**
   * <pre>
   * Результат задачи на конфигурирование устройства.
   * Очередь key.device.configure_device_result
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask}
   */
  public static final class ConfigureDeviceResultTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceResultTask)
      ConfigureDeviceResultTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ConfigureDeviceResultTask.newBuilder() to construct.
    private ConfigureDeviceResultTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ConfigureDeviceResultTask() {
      requestId_ = "";
      hardwareVersion_ = "";
      firmwareVersion_ = "";
      model_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Builder.class);
    }

    public interface SettingsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceResultTask.Settings)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the preset field is set.
       */
      boolean hasPreset();
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The preset.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getPreset();
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getPresetOrBuilder();

      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
       * @return Whether the sipAccount field is set.
       */
      boolean hasSipAccount();
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
       * @return The sipAccount.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSipAccount();
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSipAccountOrBuilder();

      /**
       * <pre>
       * Настройка сип-номеров в помещениях
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
       * @return Whether the sipRooms field is set.
       */
      boolean hasSipRooms();
      /**
       * <pre>
       * Настройка сип-номеров в помещениях
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
       * @return The sipRooms.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms getSipRooms();
      /**
       * <pre>
       * Настройка сип-номеров в помещениях
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRoomsOrBuilder getSipRoomsOrBuilder();

      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return Whether the gate field is set.
       */
      boolean hasGate();
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return The gate.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getGate();
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getGateOrBuilder();

      /**
       * <pre>
       * Настройка ключей
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
       * @return Whether the rfids field is set.
       */
      boolean hasRfids();
      /**
       * <pre>
       * Настройка ключей
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
       * @return The rfids.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids getRfids();
      /**
       * <pre>
       * Настройка ключей
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.RfidsOrBuilder getRfidsOrBuilder();

      /**
       * <pre>
       * Настройка кодов
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
       * @return Whether the codes field is set.
       */
      boolean hasCodes();
      /**
       * <pre>
       * Настройка кодов
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
       * @return The codes.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes getCodes();
      /**
       * <pre>
       * Настройка кодов
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.CodesOrBuilder getCodesOrBuilder();

      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return Whether the sl3 field is set.
       */
      boolean hasSl3();
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return The sl3.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSl3();
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSl3OrBuilder();

      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return Whether the emergencyCallSettings field is set.
       */
      boolean hasEmergencyCallSettings();
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return The emergencyCallSettings.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getEmergencyCallSettings();
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getEmergencyCallSettingsOrBuilder();
    }
    /**
     * <pre>
     * Результат конфигурации устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings}
     */
    public static final class Settings extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings)
        SettingsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Settings.newBuilder() to construct.
      private Settings(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Settings() {
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Builder.class);
      }

      /**
       * <pre>
       * Справочник статусов конфигурации устройства.
       * # Тип: byte
       * </pre>
       *
       * Protobuf enum {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType}
       */
      public enum StatusType
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>STATUS_TYPE_UNKNOWN = 0;</code>
         */
        STATUS_TYPE_UNKNOWN(0),
        /**
         * <pre>
         * Настроен
         * </pre>
         *
         * <code>SUCCESS = 1;</code>
         */
        SUCCESS(1),
        /**
         * <pre>
         * Ошибка
         * </pre>
         *
         * <code>ERROR = 2;</code>
         */
        ERROR(2),
        UNRECOGNIZED(-1),
        ;

        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>STATUS_TYPE_UNKNOWN = 0;</code>
         */
        public static final int STATUS_TYPE_UNKNOWN_VALUE = 0;
        /**
         * <pre>
         * Настроен
         * </pre>
         *
         * <code>SUCCESS = 1;</code>
         */
        public static final int SUCCESS_VALUE = 1;
        /**
         * <pre>
         * Ошибка
         * </pre>
         *
         * <code>ERROR = 2;</code>
         */
        public static final int ERROR_VALUE = 2;


        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 numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static StatusType valueOf(int value) {
          return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static StatusType forNumber(int value) {
          switch (value) {
            case 0: return STATUS_TYPE_UNKNOWN;
            case 1: return SUCCESS;
            case 2: return ERROR;
            default: return null;
          }
        }

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

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalStateException(
                "Can't get the descriptor of an unrecognized enum value.");
          }
          return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDescriptor().getEnumTypes().get(0);
        }

        private static final StatusType[] VALUES = values();

        public static StatusType valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          if (desc.getIndex() == -1) {
            return UNRECOGNIZED;
          }
          return VALUES[desc.getIndex()];
        }

        private final int value;

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

        // @@protoc_insertion_point(enum_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType)
      }

      public interface StateOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceResultTask.Settings.State)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The enum numeric value on the wire for statusType.
         */
        int getStatusTypeValue();
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The statusType.
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType();

        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        java.lang.String getErrorMessage();
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        com.google.protobuf.ByteString
            getErrorMessageBytes();
      }
      /**
       * <pre>
       * Состояние настройки
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.State}
       */
      public static final class State extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.State)
          StateOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use State.newBuilder() to construct.
        private State(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private State() {
          statusType_ = 0;
          errorMessage_ = "";
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder.class);
        }

        public static final int STATUS_TYPE_FIELD_NUMBER = 1;
        private int statusType_ = 0;
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The enum numeric value on the wire for statusType.
         */
        @java.lang.Override public int getStatusTypeValue() {
          return statusType_;
        }
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The statusType.
         */
        @java.lang.Override public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
          return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
        }

        public static final int ERROR_MESSAGE_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object errorMessage_ = "";
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        @java.lang.Override
        public java.lang.String getErrorMessage() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            errorMessage_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getErrorMessageBytes() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            errorMessage_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            output.writeEnum(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errorMessage_);
          }
          getUnknownFields().writeTo(output);
        }

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

          size = 0;
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errorMessage_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State)) {
            return super.equals(obj);
          }
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State) obj;

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

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

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

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Состояние настройки
         * </pre>
         *
         * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.State}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.State)
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder.class);
          }

          // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.newBuilder()
          private Builder() {

          }

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

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

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getDefaultInstanceForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State build() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State buildPartial() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State(this);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }

          private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State result) {
            int from_bitField0_ = bitField0_;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.statusType_ = statusType_;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.errorMessage_ = errorMessage_;
            }
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State) {
              return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State other) {
            if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) return this;
            if (other.statusType_ != 0) {
              setStatusTypeValue(other.getStatusTypeValue());
            }
            if (!other.getErrorMessage().isEmpty()) {
              errorMessage_ = other.errorMessage_;
              bitField0_ |= 0x00000002;
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

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

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

          private int statusType_ = 0;
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The enum numeric value on the wire for statusType.
           */
          @java.lang.Override public int getStatusTypeValue() {
            return statusType_;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The enum numeric value on the wire for statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusTypeValue(int value) {
            statusType_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The statusType.
           */
          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
            return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusType(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            statusType_ = value.getNumber();
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return This builder for chaining.
           */
          public Builder clearStatusType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            statusType_ = 0;
            onChanged();
            return this;
          }

          private java.lang.Object errorMessage_ = "";
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The errorMessage.
           */
          public java.lang.String getErrorMessage() {
            java.lang.Object ref = errorMessage_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              errorMessage_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The bytes for errorMessage.
           */
          public com.google.protobuf.ByteString
              getErrorMessageBytes() {
            java.lang.Object ref = errorMessage_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              errorMessage_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessage(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearErrorMessage() {
            errorMessage_ = getDefaultInstance().getErrorMessage();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The bytes for errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessageBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.State)
        }

        // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.State)
        private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State();
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface RfidsOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The enum numeric value on the wire for statusType.
         */
        int getStatusTypeValue();
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The statusType.
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType();

        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        java.lang.String getErrorMessage();
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        com.google.protobuf.ByteString
            getErrorMessageBytes();

        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> 
            getLoadedRfidsList();
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getLoadedRfids(int index);
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        int getLoadedRfidsCount();
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
            getLoadedRfidsOrBuilderList();
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getLoadedRfidsOrBuilder(
            int index);

        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> 
            getUnloadedRfidsList();
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getUnloadedRfids(int index);
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        int getUnloadedRfidsCount();
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
            getUnloadedRfidsOrBuilderList();
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getUnloadedRfidsOrBuilder(
            int index);
      }
      /**
       * <pre>
       * Настройка ключей
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids}
       */
      public static final class Rfids extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids)
          RfidsOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use Rfids.newBuilder() to construct.
        private Rfids(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private Rfids() {
          statusType_ = 0;
          errorMessage_ = "";
          loadedRfids_ = java.util.Collections.emptyList();
          unloadedRfids_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.Builder.class);
        }

        public static final int STATUS_TYPE_FIELD_NUMBER = 1;
        private int statusType_ = 0;
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The enum numeric value on the wire for statusType.
         */
        @java.lang.Override public int getStatusTypeValue() {
          return statusType_;
        }
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The statusType.
         */
        @java.lang.Override public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
          return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
        }

        public static final int ERROR_MESSAGE_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object errorMessage_ = "";
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        @java.lang.Override
        public java.lang.String getErrorMessage() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            errorMessage_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getErrorMessageBytes() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            errorMessage_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int LOADED_RFIDS_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> loadedRfids_;
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getLoadedRfidsList() {
          return loadedRfids_;
        }
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
            getLoadedRfidsOrBuilderList() {
          return loadedRfids_;
        }
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        @java.lang.Override
        public int getLoadedRfidsCount() {
          return loadedRfids_.size();
        }
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getLoadedRfids(int index) {
          return loadedRfids_.get(index);
        }
        /**
         * <pre>
         * Загруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getLoadedRfidsOrBuilder(
            int index) {
          return loadedRfids_.get(index);
        }

        public static final int UNLOADED_RFIDS_FIELD_NUMBER = 4;
        @SuppressWarnings("serial")
        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> unloadedRfids_;
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> getUnloadedRfidsList() {
          return unloadedRfids_;
        }
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        @java.lang.Override
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
            getUnloadedRfidsOrBuilderList() {
          return unloadedRfids_;
        }
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        @java.lang.Override
        public int getUnloadedRfidsCount() {
          return unloadedRfids_.size();
        }
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getUnloadedRfids(int index) {
          return unloadedRfids_.get(index);
        }
        /**
         * <pre>
         * Незагруженные ключи
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getUnloadedRfidsOrBuilder(
            int index) {
          return unloadedRfids_.get(index);
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            output.writeEnum(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errorMessage_);
          }
          for (int i = 0; i < loadedRfids_.size(); i++) {
            output.writeMessage(3, loadedRfids_.get(i));
          }
          for (int i = 0; i < unloadedRfids_.size(); i++) {
            output.writeMessage(4, unloadedRfids_.get(i));
          }
          getUnknownFields().writeTo(output);
        }

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

          size = 0;
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errorMessage_);
          }
          for (int i = 0; i < loadedRfids_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, loadedRfids_.get(i));
          }
          for (int i = 0; i < unloadedRfids_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, unloadedRfids_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids)) {
            return super.equals(obj);
          }
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids) obj;

          if (statusType_ != other.statusType_) return false;
          if (!getErrorMessage()
              .equals(other.getErrorMessage())) return false;
          if (!getLoadedRfidsList()
              .equals(other.getLoadedRfidsList())) return false;
          if (!getUnloadedRfidsList()
              .equals(other.getUnloadedRfidsList())) return false;
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + STATUS_TYPE_FIELD_NUMBER;
          hash = (53 * hash) + statusType_;
          hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
          hash = (53 * hash) + getErrorMessage().hashCode();
          if (getLoadedRfidsCount() > 0) {
            hash = (37 * hash) + LOADED_RFIDS_FIELD_NUMBER;
            hash = (53 * hash) + getLoadedRfidsList().hashCode();
          }
          if (getUnloadedRfidsCount() > 0) {
            hash = (37 * hash) + UNLOADED_RFIDS_FIELD_NUMBER;
            hash = (53 * hash) + getUnloadedRfidsList().hashCode();
          }
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

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

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids)
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.RfidsOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.Builder.class);
          }

          // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.newBuilder()
          private Builder() {

          }

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

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            statusType_ = 0;
            errorMessage_ = "";
            if (loadedRfidsBuilder_ == null) {
              loadedRfids_ = java.util.Collections.emptyList();
            } else {
              loadedRfids_ = null;
              loadedRfidsBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000004);
            if (unloadedRfidsBuilder_ == null) {
              unloadedRfids_ = java.util.Collections.emptyList();
            } else {
              unloadedRfids_ = null;
              unloadedRfidsBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000008);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids getDefaultInstanceForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids build() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids buildPartial() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids(this);
            buildPartialRepeatedFields(result);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }

          private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids result) {
            if (loadedRfidsBuilder_ == null) {
              if (((bitField0_ & 0x00000004) != 0)) {
                loadedRfids_ = java.util.Collections.unmodifiableList(loadedRfids_);
                bitField0_ = (bitField0_ & ~0x00000004);
              }
              result.loadedRfids_ = loadedRfids_;
            } else {
              result.loadedRfids_ = loadedRfidsBuilder_.build();
            }
            if (unloadedRfidsBuilder_ == null) {
              if (((bitField0_ & 0x00000008) != 0)) {
                unloadedRfids_ = java.util.Collections.unmodifiableList(unloadedRfids_);
                bitField0_ = (bitField0_ & ~0x00000008);
              }
              result.unloadedRfids_ = unloadedRfids_;
            } else {
              result.unloadedRfids_ = unloadedRfidsBuilder_.build();
            }
          }

          private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids result) {
            int from_bitField0_ = bitField0_;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.statusType_ = statusType_;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.errorMessage_ = errorMessage_;
            }
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids) {
              return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids other) {
            if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.getDefaultInstance()) return this;
            if (other.statusType_ != 0) {
              setStatusTypeValue(other.getStatusTypeValue());
            }
            if (!other.getErrorMessage().isEmpty()) {
              errorMessage_ = other.errorMessage_;
              bitField0_ |= 0x00000002;
              onChanged();
            }
            if (loadedRfidsBuilder_ == null) {
              if (!other.loadedRfids_.isEmpty()) {
                if (loadedRfids_.isEmpty()) {
                  loadedRfids_ = other.loadedRfids_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                } else {
                  ensureLoadedRfidsIsMutable();
                  loadedRfids_.addAll(other.loadedRfids_);
                }
                onChanged();
              }
            } else {
              if (!other.loadedRfids_.isEmpty()) {
                if (loadedRfidsBuilder_.isEmpty()) {
                  loadedRfidsBuilder_.dispose();
                  loadedRfidsBuilder_ = null;
                  loadedRfids_ = other.loadedRfids_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                  loadedRfidsBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getLoadedRfidsFieldBuilder() : null;
                } else {
                  loadedRfidsBuilder_.addAllMessages(other.loadedRfids_);
                }
              }
            }
            if (unloadedRfidsBuilder_ == null) {
              if (!other.unloadedRfids_.isEmpty()) {
                if (unloadedRfids_.isEmpty()) {
                  unloadedRfids_ = other.unloadedRfids_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                } else {
                  ensureUnloadedRfidsIsMutable();
                  unloadedRfids_.addAll(other.unloadedRfids_);
                }
                onChanged();
              }
            } else {
              if (!other.unloadedRfids_.isEmpty()) {
                if (unloadedRfidsBuilder_.isEmpty()) {
                  unloadedRfidsBuilder_.dispose();
                  unloadedRfidsBuilder_ = null;
                  unloadedRfids_ = other.unloadedRfids_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                  unloadedRfidsBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getUnloadedRfidsFieldBuilder() : null;
                } else {
                  unloadedRfidsBuilder_.addAllMessages(other.unloadedRfids_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

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

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 8: {
                    statusType_ = input.readEnum();
                    bitField0_ |= 0x00000001;
                    break;
                  } // case 8
                  case 18: {
                    errorMessage_ = input.readStringRequireUtf8();
                    bitField0_ |= 0x00000002;
                    break;
                  } // case 18
                  case 26: {
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid m =
                        input.readMessage(
                            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.parser(),
                            extensionRegistry);
                    if (loadedRfidsBuilder_ == null) {
                      ensureLoadedRfidsIsMutable();
                      loadedRfids_.add(m);
                    } else {
                      loadedRfidsBuilder_.addMessage(m);
                    }
                    break;
                  } // case 26
                  case 34: {
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError m =
                        input.readMessage(
                            ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.parser(),
                            extensionRegistry);
                    if (unloadedRfidsBuilder_ == null) {
                      ensureUnloadedRfidsIsMutable();
                      unloadedRfids_.add(m);
                    } else {
                      unloadedRfidsBuilder_.addMessage(m);
                    }
                    break;
                  } // case 34
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          private int bitField0_;

          private int statusType_ = 0;
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return The enum numeric value on the wire for statusType.
           */
          @java.lang.Override public int getStatusTypeValue() {
            return statusType_;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @param value The enum numeric value on the wire for statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusTypeValue(int value) {
            statusType_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return The statusType.
           */
          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
            return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @param value The statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusType(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            statusType_ = value.getNumber();
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearStatusType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            statusType_ = 0;
            onChanged();
            return this;
          }

          private java.lang.Object errorMessage_ = "";
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The errorMessage.
           */
          public java.lang.String getErrorMessage() {
            java.lang.Object ref = errorMessage_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              errorMessage_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The bytes for errorMessage.
           */
          public com.google.protobuf.ByteString
              getErrorMessageBytes() {
            java.lang.Object ref = errorMessage_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              errorMessage_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessage(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearErrorMessage() {
            errorMessage_ = getDefaultInstance().getErrorMessage();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The bytes for errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessageBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }

          private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> loadedRfids_ =
            java.util.Collections.emptyList();
          private void ensureLoadedRfidsIsMutable() {
            if (!((bitField0_ & 0x00000004) != 0)) {
              loadedRfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid>(loadedRfids_);
              bitField0_ |= 0x00000004;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> loadedRfidsBuilder_;

          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getLoadedRfidsList() {
            if (loadedRfidsBuilder_ == null) {
              return java.util.Collections.unmodifiableList(loadedRfids_);
            } else {
              return loadedRfidsBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public int getLoadedRfidsCount() {
            if (loadedRfidsBuilder_ == null) {
              return loadedRfids_.size();
            } else {
              return loadedRfidsBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getLoadedRfids(int index) {
            if (loadedRfidsBuilder_ == null) {
              return loadedRfids_.get(index);
            } else {
              return loadedRfidsBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder setLoadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
            if (loadedRfidsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedRfidsIsMutable();
              loadedRfids_.set(index, value);
              onChanged();
            } else {
              loadedRfidsBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder setLoadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
            if (loadedRfidsBuilder_ == null) {
              ensureLoadedRfidsIsMutable();
              loadedRfids_.set(index, builderForValue.build());
              onChanged();
            } else {
              loadedRfidsBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder addLoadedRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
            if (loadedRfidsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedRfidsIsMutable();
              loadedRfids_.add(value);
              onChanged();
            } else {
              loadedRfidsBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder addLoadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
            if (loadedRfidsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedRfidsIsMutable();
              loadedRfids_.add(index, value);
              onChanged();
            } else {
              loadedRfidsBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder addLoadedRfids(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
            if (loadedRfidsBuilder_ == null) {
              ensureLoadedRfidsIsMutable();
              loadedRfids_.add(builderForValue.build());
              onChanged();
            } else {
              loadedRfidsBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder addLoadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
            if (loadedRfidsBuilder_ == null) {
              ensureLoadedRfidsIsMutable();
              loadedRfids_.add(index, builderForValue.build());
              onChanged();
            } else {
              loadedRfidsBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder addAllLoadedRfids(
              java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> values) {
            if (loadedRfidsBuilder_ == null) {
              ensureLoadedRfidsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, loadedRfids_);
              onChanged();
            } else {
              loadedRfidsBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder clearLoadedRfids() {
            if (loadedRfidsBuilder_ == null) {
              loadedRfids_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
              onChanged();
            } else {
              loadedRfidsBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public Builder removeLoadedRfids(int index) {
            if (loadedRfidsBuilder_ == null) {
              ensureLoadedRfidsIsMutable();
              loadedRfids_.remove(index);
              onChanged();
            } else {
              loadedRfidsBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder getLoadedRfidsBuilder(
              int index) {
            return getLoadedRfidsFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getLoadedRfidsOrBuilder(
              int index) {
            if (loadedRfidsBuilder_ == null) {
              return loadedRfids_.get(index);  } else {
              return loadedRfidsBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
               getLoadedRfidsOrBuilderList() {
            if (loadedRfidsBuilder_ != null) {
              return loadedRfidsBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(loadedRfids_);
            }
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addLoadedRfidsBuilder() {
            return getLoadedRfidsFieldBuilder().addBuilder(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addLoadedRfidsBuilder(
              int index) {
            return getLoadedRfidsFieldBuilder().addBuilder(
                index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
          }
          /**
           * <pre>
           * Загруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Rfid loaded_rfids = 3;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder> 
               getLoadedRfidsBuilderList() {
            return getLoadedRfidsFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
              getLoadedRfidsFieldBuilder() {
            if (loadedRfidsBuilder_ == null) {
              loadedRfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder>(
                      loadedRfids_,
                      ((bitField0_ & 0x00000004) != 0),
                      getParentForChildren(),
                      isClean());
              loadedRfids_ = null;
            }
            return loadedRfidsBuilder_;
          }

          private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> unloadedRfids_ =
            java.util.Collections.emptyList();
          private void ensureUnloadedRfidsIsMutable() {
            if (!((bitField0_ & 0x00000008) != 0)) {
              unloadedRfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError>(unloadedRfids_);
              bitField0_ |= 0x00000008;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> unloadedRfidsBuilder_;

          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> getUnloadedRfidsList() {
            if (unloadedRfidsBuilder_ == null) {
              return java.util.Collections.unmodifiableList(unloadedRfids_);
            } else {
              return unloadedRfidsBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public int getUnloadedRfidsCount() {
            if (unloadedRfidsBuilder_ == null) {
              return unloadedRfids_.size();
            } else {
              return unloadedRfidsBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getUnloadedRfids(int index) {
            if (unloadedRfidsBuilder_ == null) {
              return unloadedRfids_.get(index);
            } else {
              return unloadedRfidsBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder setUnloadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
            if (unloadedRfidsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedRfidsIsMutable();
              unloadedRfids_.set(index, value);
              onChanged();
            } else {
              unloadedRfidsBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder setUnloadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
            if (unloadedRfidsBuilder_ == null) {
              ensureUnloadedRfidsIsMutable();
              unloadedRfids_.set(index, builderForValue.build());
              onChanged();
            } else {
              unloadedRfidsBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder addUnloadedRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
            if (unloadedRfidsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedRfidsIsMutable();
              unloadedRfids_.add(value);
              onChanged();
            } else {
              unloadedRfidsBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder addUnloadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
            if (unloadedRfidsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedRfidsIsMutable();
              unloadedRfids_.add(index, value);
              onChanged();
            } else {
              unloadedRfidsBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder addUnloadedRfids(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
            if (unloadedRfidsBuilder_ == null) {
              ensureUnloadedRfidsIsMutable();
              unloadedRfids_.add(builderForValue.build());
              onChanged();
            } else {
              unloadedRfidsBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder addUnloadedRfids(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
            if (unloadedRfidsBuilder_ == null) {
              ensureUnloadedRfidsIsMutable();
              unloadedRfids_.add(index, builderForValue.build());
              onChanged();
            } else {
              unloadedRfidsBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder addAllUnloadedRfids(
              java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> values) {
            if (unloadedRfidsBuilder_ == null) {
              ensureUnloadedRfidsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, unloadedRfids_);
              onChanged();
            } else {
              unloadedRfidsBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder clearUnloadedRfids() {
            if (unloadedRfidsBuilder_ == null) {
              unloadedRfids_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000008);
              onChanged();
            } else {
              unloadedRfidsBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public Builder removeUnloadedRfids(int index) {
            if (unloadedRfidsBuilder_ == null) {
              ensureUnloadedRfidsIsMutable();
              unloadedRfids_.remove(index);
              onChanged();
            } else {
              unloadedRfidsBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder getUnloadedRfidsBuilder(
              int index) {
            return getUnloadedRfidsFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getUnloadedRfidsOrBuilder(
              int index) {
            if (unloadedRfidsBuilder_ == null) {
              return unloadedRfids_.get(index);  } else {
              return unloadedRfidsBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
               getUnloadedRfidsOrBuilderList() {
            if (unloadedRfidsBuilder_ != null) {
              return unloadedRfidsBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(unloadedRfids_);
            }
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder addUnloadedRfidsBuilder() {
            return getUnloadedRfidsFieldBuilder().addBuilder(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance());
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder addUnloadedRfidsBuilder(
              int index) {
            return getUnloadedRfidsFieldBuilder().addBuilder(
                index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance());
          }
          /**
           * <pre>
           * Незагруженные ключи
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.RfidError unloaded_rfids = 4;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder> 
               getUnloadedRfidsBuilderList() {
            return getUnloadedRfidsFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
              getUnloadedRfidsFieldBuilder() {
            if (unloadedRfidsBuilder_ == null) {
              unloadedRfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder>(
                      unloadedRfids_,
                      ((bitField0_ & 0x00000008) != 0),
                      getParentForChildren(),
                      isClean());
              unloadedRfids_ = null;
            }
            return unloadedRfidsBuilder_;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids)
        }

        // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids)
        private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids();
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface CodesOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The enum numeric value on the wire for statusType.
         */
        int getStatusTypeValue();
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The statusType.
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType();

        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        java.lang.String getErrorMessage();
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        com.google.protobuf.ByteString
            getErrorMessageBytes();

        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> 
            getLoadedCodesList();
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getLoadedCodes(int index);
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        int getLoadedCodesCount();
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
            getLoadedCodesOrBuilderList();
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getLoadedCodesOrBuilder(
            int index);

        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> 
            getUnloadedCodesList();
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getUnloadedCodes(int index);
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        int getUnloadedCodesCount();
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
            getUnloadedCodesOrBuilderList();
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getUnloadedCodesOrBuilder(
            int index);
      }
      /**
       * <pre>
       * Настройка кодов
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes}
       */
      public static final class Codes extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes)
          CodesOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use Codes.newBuilder() to construct.
        private Codes(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private Codes() {
          statusType_ = 0;
          errorMessage_ = "";
          loadedCodes_ = java.util.Collections.emptyList();
          unloadedCodes_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.Builder.class);
        }

        public static final int STATUS_TYPE_FIELD_NUMBER = 1;
        private int statusType_ = 0;
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The enum numeric value on the wire for statusType.
         */
        @java.lang.Override public int getStatusTypeValue() {
          return statusType_;
        }
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The statusType.
         */
        @java.lang.Override public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
          return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
        }

        public static final int ERROR_MESSAGE_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object errorMessage_ = "";
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        @java.lang.Override
        public java.lang.String getErrorMessage() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            errorMessage_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getErrorMessageBytes() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            errorMessage_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int LOADED_CODES_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> loadedCodes_;
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getLoadedCodesList() {
          return loadedCodes_;
        }
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
            getLoadedCodesOrBuilderList() {
          return loadedCodes_;
        }
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        @java.lang.Override
        public int getLoadedCodesCount() {
          return loadedCodes_.size();
        }
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getLoadedCodes(int index) {
          return loadedCodes_.get(index);
        }
        /**
         * <pre>
         * Загруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getLoadedCodesOrBuilder(
            int index) {
          return loadedCodes_.get(index);
        }

        public static final int UNLOADED_CODES_FIELD_NUMBER = 4;
        @SuppressWarnings("serial")
        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> unloadedCodes_;
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> getUnloadedCodesList() {
          return unloadedCodes_;
        }
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        @java.lang.Override
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
            getUnloadedCodesOrBuilderList() {
          return unloadedCodes_;
        }
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        @java.lang.Override
        public int getUnloadedCodesCount() {
          return unloadedCodes_.size();
        }
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getUnloadedCodes(int index) {
          return unloadedCodes_.get(index);
        }
        /**
         * <pre>
         * Незагруженные коды
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getUnloadedCodesOrBuilder(
            int index) {
          return unloadedCodes_.get(index);
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            output.writeEnum(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errorMessage_);
          }
          for (int i = 0; i < loadedCodes_.size(); i++) {
            output.writeMessage(3, loadedCodes_.get(i));
          }
          for (int i = 0; i < unloadedCodes_.size(); i++) {
            output.writeMessage(4, unloadedCodes_.get(i));
          }
          getUnknownFields().writeTo(output);
        }

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

          size = 0;
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errorMessage_);
          }
          for (int i = 0; i < loadedCodes_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, loadedCodes_.get(i));
          }
          for (int i = 0; i < unloadedCodes_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, unloadedCodes_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes)) {
            return super.equals(obj);
          }
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes) obj;

          if (statusType_ != other.statusType_) return false;
          if (!getErrorMessage()
              .equals(other.getErrorMessage())) return false;
          if (!getLoadedCodesList()
              .equals(other.getLoadedCodesList())) return false;
          if (!getUnloadedCodesList()
              .equals(other.getUnloadedCodesList())) return false;
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + STATUS_TYPE_FIELD_NUMBER;
          hash = (53 * hash) + statusType_;
          hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
          hash = (53 * hash) + getErrorMessage().hashCode();
          if (getLoadedCodesCount() > 0) {
            hash = (37 * hash) + LOADED_CODES_FIELD_NUMBER;
            hash = (53 * hash) + getLoadedCodesList().hashCode();
          }
          if (getUnloadedCodesCount() > 0) {
            hash = (37 * hash) + UNLOADED_CODES_FIELD_NUMBER;
            hash = (53 * hash) + getUnloadedCodesList().hashCode();
          }
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

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

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes)
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.CodesOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.Builder.class);
          }

          // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.newBuilder()
          private Builder() {

          }

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

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            statusType_ = 0;
            errorMessage_ = "";
            if (loadedCodesBuilder_ == null) {
              loadedCodes_ = java.util.Collections.emptyList();
            } else {
              loadedCodes_ = null;
              loadedCodesBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000004);
            if (unloadedCodesBuilder_ == null) {
              unloadedCodes_ = java.util.Collections.emptyList();
            } else {
              unloadedCodes_ = null;
              unloadedCodesBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000008);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes getDefaultInstanceForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes build() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes buildPartial() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes(this);
            buildPartialRepeatedFields(result);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }

          private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes result) {
            if (loadedCodesBuilder_ == null) {
              if (((bitField0_ & 0x00000004) != 0)) {
                loadedCodes_ = java.util.Collections.unmodifiableList(loadedCodes_);
                bitField0_ = (bitField0_ & ~0x00000004);
              }
              result.loadedCodes_ = loadedCodes_;
            } else {
              result.loadedCodes_ = loadedCodesBuilder_.build();
            }
            if (unloadedCodesBuilder_ == null) {
              if (((bitField0_ & 0x00000008) != 0)) {
                unloadedCodes_ = java.util.Collections.unmodifiableList(unloadedCodes_);
                bitField0_ = (bitField0_ & ~0x00000008);
              }
              result.unloadedCodes_ = unloadedCodes_;
            } else {
              result.unloadedCodes_ = unloadedCodesBuilder_.build();
            }
          }

          private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes result) {
            int from_bitField0_ = bitField0_;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.statusType_ = statusType_;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.errorMessage_ = errorMessage_;
            }
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes) {
              return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes other) {
            if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.getDefaultInstance()) return this;
            if (other.statusType_ != 0) {
              setStatusTypeValue(other.getStatusTypeValue());
            }
            if (!other.getErrorMessage().isEmpty()) {
              errorMessage_ = other.errorMessage_;
              bitField0_ |= 0x00000002;
              onChanged();
            }
            if (loadedCodesBuilder_ == null) {
              if (!other.loadedCodes_.isEmpty()) {
                if (loadedCodes_.isEmpty()) {
                  loadedCodes_ = other.loadedCodes_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                } else {
                  ensureLoadedCodesIsMutable();
                  loadedCodes_.addAll(other.loadedCodes_);
                }
                onChanged();
              }
            } else {
              if (!other.loadedCodes_.isEmpty()) {
                if (loadedCodesBuilder_.isEmpty()) {
                  loadedCodesBuilder_.dispose();
                  loadedCodesBuilder_ = null;
                  loadedCodes_ = other.loadedCodes_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                  loadedCodesBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getLoadedCodesFieldBuilder() : null;
                } else {
                  loadedCodesBuilder_.addAllMessages(other.loadedCodes_);
                }
              }
            }
            if (unloadedCodesBuilder_ == null) {
              if (!other.unloadedCodes_.isEmpty()) {
                if (unloadedCodes_.isEmpty()) {
                  unloadedCodes_ = other.unloadedCodes_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                } else {
                  ensureUnloadedCodesIsMutable();
                  unloadedCodes_.addAll(other.unloadedCodes_);
                }
                onChanged();
              }
            } else {
              if (!other.unloadedCodes_.isEmpty()) {
                if (unloadedCodesBuilder_.isEmpty()) {
                  unloadedCodesBuilder_.dispose();
                  unloadedCodesBuilder_ = null;
                  unloadedCodes_ = other.unloadedCodes_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                  unloadedCodesBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getUnloadedCodesFieldBuilder() : null;
                } else {
                  unloadedCodesBuilder_.addAllMessages(other.unloadedCodes_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

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

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 8: {
                    statusType_ = input.readEnum();
                    bitField0_ |= 0x00000001;
                    break;
                  } // case 8
                  case 18: {
                    errorMessage_ = input.readStringRequireUtf8();
                    bitField0_ |= 0x00000002;
                    break;
                  } // case 18
                  case 26: {
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code m =
                        input.readMessage(
                            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.parser(),
                            extensionRegistry);
                    if (loadedCodesBuilder_ == null) {
                      ensureLoadedCodesIsMutable();
                      loadedCodes_.add(m);
                    } else {
                      loadedCodesBuilder_.addMessage(m);
                    }
                    break;
                  } // case 26
                  case 34: {
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError m =
                        input.readMessage(
                            ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.parser(),
                            extensionRegistry);
                    if (unloadedCodesBuilder_ == null) {
                      ensureUnloadedCodesIsMutable();
                      unloadedCodes_.add(m);
                    } else {
                      unloadedCodesBuilder_.addMessage(m);
                    }
                    break;
                  } // case 34
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          private int bitField0_;

          private int statusType_ = 0;
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return The enum numeric value on the wire for statusType.
           */
          @java.lang.Override public int getStatusTypeValue() {
            return statusType_;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @param value The enum numeric value on the wire for statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusTypeValue(int value) {
            statusType_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return The statusType.
           */
          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
            return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @param value The statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusType(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            statusType_ = value.getNumber();
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearStatusType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            statusType_ = 0;
            onChanged();
            return this;
          }

          private java.lang.Object errorMessage_ = "";
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The errorMessage.
           */
          public java.lang.String getErrorMessage() {
            java.lang.Object ref = errorMessage_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              errorMessage_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The bytes for errorMessage.
           */
          public com.google.protobuf.ByteString
              getErrorMessageBytes() {
            java.lang.Object ref = errorMessage_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              errorMessage_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessage(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearErrorMessage() {
            errorMessage_ = getDefaultInstance().getErrorMessage();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The bytes for errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessageBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }

          private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> loadedCodes_ =
            java.util.Collections.emptyList();
          private void ensureLoadedCodesIsMutable() {
            if (!((bitField0_ & 0x00000004) != 0)) {
              loadedCodes_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code>(loadedCodes_);
              bitField0_ |= 0x00000004;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> loadedCodesBuilder_;

          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getLoadedCodesList() {
            if (loadedCodesBuilder_ == null) {
              return java.util.Collections.unmodifiableList(loadedCodes_);
            } else {
              return loadedCodesBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public int getLoadedCodesCount() {
            if (loadedCodesBuilder_ == null) {
              return loadedCodes_.size();
            } else {
              return loadedCodesBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getLoadedCodes(int index) {
            if (loadedCodesBuilder_ == null) {
              return loadedCodes_.get(index);
            } else {
              return loadedCodesBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder setLoadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
            if (loadedCodesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedCodesIsMutable();
              loadedCodes_.set(index, value);
              onChanged();
            } else {
              loadedCodesBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder setLoadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
            if (loadedCodesBuilder_ == null) {
              ensureLoadedCodesIsMutable();
              loadedCodes_.set(index, builderForValue.build());
              onChanged();
            } else {
              loadedCodesBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder addLoadedCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
            if (loadedCodesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedCodesIsMutable();
              loadedCodes_.add(value);
              onChanged();
            } else {
              loadedCodesBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder addLoadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
            if (loadedCodesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedCodesIsMutable();
              loadedCodes_.add(index, value);
              onChanged();
            } else {
              loadedCodesBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder addLoadedCodes(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
            if (loadedCodesBuilder_ == null) {
              ensureLoadedCodesIsMutable();
              loadedCodes_.add(builderForValue.build());
              onChanged();
            } else {
              loadedCodesBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder addLoadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
            if (loadedCodesBuilder_ == null) {
              ensureLoadedCodesIsMutable();
              loadedCodes_.add(index, builderForValue.build());
              onChanged();
            } else {
              loadedCodesBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder addAllLoadedCodes(
              java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> values) {
            if (loadedCodesBuilder_ == null) {
              ensureLoadedCodesIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, loadedCodes_);
              onChanged();
            } else {
              loadedCodesBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder clearLoadedCodes() {
            if (loadedCodesBuilder_ == null) {
              loadedCodes_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
              onChanged();
            } else {
              loadedCodesBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public Builder removeLoadedCodes(int index) {
            if (loadedCodesBuilder_ == null) {
              ensureLoadedCodesIsMutable();
              loadedCodes_.remove(index);
              onChanged();
            } else {
              loadedCodesBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder getLoadedCodesBuilder(
              int index) {
            return getLoadedCodesFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getLoadedCodesOrBuilder(
              int index) {
            if (loadedCodesBuilder_ == null) {
              return loadedCodes_.get(index);  } else {
              return loadedCodesBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
               getLoadedCodesOrBuilderList() {
            if (loadedCodesBuilder_ != null) {
              return loadedCodesBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(loadedCodes_);
            }
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addLoadedCodesBuilder() {
            return getLoadedCodesFieldBuilder().addBuilder(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addLoadedCodesBuilder(
              int index) {
            return getLoadedCodesFieldBuilder().addBuilder(
                index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
          }
          /**
           * <pre>
           * Загруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.Code loaded_codes = 3;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder> 
               getLoadedCodesBuilderList() {
            return getLoadedCodesFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
              getLoadedCodesFieldBuilder() {
            if (loadedCodesBuilder_ == null) {
              loadedCodesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder>(
                      loadedCodes_,
                      ((bitField0_ & 0x00000004) != 0),
                      getParentForChildren(),
                      isClean());
              loadedCodes_ = null;
            }
            return loadedCodesBuilder_;
          }

          private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> unloadedCodes_ =
            java.util.Collections.emptyList();
          private void ensureUnloadedCodesIsMutable() {
            if (!((bitField0_ & 0x00000008) != 0)) {
              unloadedCodes_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError>(unloadedCodes_);
              bitField0_ |= 0x00000008;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> unloadedCodesBuilder_;

          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> getUnloadedCodesList() {
            if (unloadedCodesBuilder_ == null) {
              return java.util.Collections.unmodifiableList(unloadedCodes_);
            } else {
              return unloadedCodesBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public int getUnloadedCodesCount() {
            if (unloadedCodesBuilder_ == null) {
              return unloadedCodes_.size();
            } else {
              return unloadedCodesBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getUnloadedCodes(int index) {
            if (unloadedCodesBuilder_ == null) {
              return unloadedCodes_.get(index);
            } else {
              return unloadedCodesBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder setUnloadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
            if (unloadedCodesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedCodesIsMutable();
              unloadedCodes_.set(index, value);
              onChanged();
            } else {
              unloadedCodesBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder setUnloadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
            if (unloadedCodesBuilder_ == null) {
              ensureUnloadedCodesIsMutable();
              unloadedCodes_.set(index, builderForValue.build());
              onChanged();
            } else {
              unloadedCodesBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder addUnloadedCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
            if (unloadedCodesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedCodesIsMutable();
              unloadedCodes_.add(value);
              onChanged();
            } else {
              unloadedCodesBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder addUnloadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
            if (unloadedCodesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedCodesIsMutable();
              unloadedCodes_.add(index, value);
              onChanged();
            } else {
              unloadedCodesBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder addUnloadedCodes(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
            if (unloadedCodesBuilder_ == null) {
              ensureUnloadedCodesIsMutable();
              unloadedCodes_.add(builderForValue.build());
              onChanged();
            } else {
              unloadedCodesBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder addUnloadedCodes(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
            if (unloadedCodesBuilder_ == null) {
              ensureUnloadedCodesIsMutable();
              unloadedCodes_.add(index, builderForValue.build());
              onChanged();
            } else {
              unloadedCodesBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder addAllUnloadedCodes(
              java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> values) {
            if (unloadedCodesBuilder_ == null) {
              ensureUnloadedCodesIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, unloadedCodes_);
              onChanged();
            } else {
              unloadedCodesBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder clearUnloadedCodes() {
            if (unloadedCodesBuilder_ == null) {
              unloadedCodes_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000008);
              onChanged();
            } else {
              unloadedCodesBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public Builder removeUnloadedCodes(int index) {
            if (unloadedCodesBuilder_ == null) {
              ensureUnloadedCodesIsMutable();
              unloadedCodes_.remove(index);
              onChanged();
            } else {
              unloadedCodesBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder getUnloadedCodesBuilder(
              int index) {
            return getUnloadedCodesFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getUnloadedCodesOrBuilder(
              int index) {
            if (unloadedCodesBuilder_ == null) {
              return unloadedCodes_.get(index);  } else {
              return unloadedCodesBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
               getUnloadedCodesOrBuilderList() {
            if (unloadedCodesBuilder_ != null) {
              return unloadedCodesBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(unloadedCodes_);
            }
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder addUnloadedCodesBuilder() {
            return getUnloadedCodesFieldBuilder().addBuilder(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance());
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder addUnloadedCodesBuilder(
              int index) {
            return getUnloadedCodesFieldBuilder().addBuilder(
                index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance());
          }
          /**
           * <pre>
           * Незагруженные коды
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.CodeError unloaded_codes = 4;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder> 
               getUnloadedCodesBuilderList() {
            return getUnloadedCodesFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
              getUnloadedCodesFieldBuilder() {
            if (unloadedCodesBuilder_ == null) {
              unloadedCodesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder>(
                      unloadedCodes_,
                      ((bitField0_ & 0x00000008) != 0),
                      getParentForChildren(),
                      isClean());
              unloadedCodes_ = null;
            }
            return unloadedCodesBuilder_;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes)
        }

        // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes)
        private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes();
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface SipRoomsOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The enum numeric value on the wire for statusType.
         */
        int getStatusTypeValue();
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The statusType.
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType();

        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        java.lang.String getErrorMessage();
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        com.google.protobuf.ByteString
            getErrorMessageBytes();

        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> 
            getLoadedSipRoomsList();
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getLoadedSipRooms(int index);
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        int getLoadedSipRoomsCount();
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
            getLoadedSipRoomsOrBuilderList();
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder getLoadedSipRoomsOrBuilder(
            int index);

        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError> 
            getUnloadedSipRoomsList();
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError getUnloadedSipRooms(int index);
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        int getUnloadedSipRoomsCount();
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder> 
            getUnloadedSipRoomsOrBuilderList();
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder getUnloadedSipRoomsOrBuilder(
            int index);
      }
      /**
       * <pre>
       * Настройка квартир
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms}
       */
      public static final class SipRooms extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms)
          SipRoomsOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use SipRooms.newBuilder() to construct.
        private SipRooms(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private SipRooms() {
          statusType_ = 0;
          errorMessage_ = "";
          loadedSipRooms_ = java.util.Collections.emptyList();
          unloadedSipRooms_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.Builder.class);
        }

        public static final int STATUS_TYPE_FIELD_NUMBER = 1;
        private int statusType_ = 0;
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The enum numeric value on the wire for statusType.
         */
        @java.lang.Override public int getStatusTypeValue() {
          return statusType_;
        }
        /**
         * <pre>
         * Статус конфигурации устройства
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
         * @return The statusType.
         */
        @java.lang.Override public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
          return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
        }

        public static final int ERROR_MESSAGE_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object errorMessage_ = "";
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The errorMessage.
         */
        @java.lang.Override
        public java.lang.String getErrorMessage() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            errorMessage_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * Текст ошибки
         * </pre>
         *
         * <code>string error_message = 2;</code>
         * @return The bytes for errorMessage.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getErrorMessageBytes() {
          java.lang.Object ref = errorMessage_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            errorMessage_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int LOADED_SIP_ROOMS_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> loadedSipRooms_;
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> getLoadedSipRoomsList() {
          return loadedSipRooms_;
        }
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
            getLoadedSipRoomsOrBuilderList() {
          return loadedSipRooms_;
        }
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        @java.lang.Override
        public int getLoadedSipRoomsCount() {
          return loadedSipRooms_.size();
        }
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getLoadedSipRooms(int index) {
          return loadedSipRooms_.get(index);
        }
        /**
         * <pre>
         * Загруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder getLoadedSipRoomsOrBuilder(
            int index) {
          return loadedSipRooms_.get(index);
        }

        public static final int UNLOADED_SIP_ROOMS_FIELD_NUMBER = 4;
        @SuppressWarnings("serial")
        private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError> unloadedSipRooms_;
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError> getUnloadedSipRoomsList() {
          return unloadedSipRooms_;
        }
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        @java.lang.Override
        public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder> 
            getUnloadedSipRoomsOrBuilderList() {
          return unloadedSipRooms_;
        }
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        @java.lang.Override
        public int getUnloadedSipRoomsCount() {
          return unloadedSipRooms_.size();
        }
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError getUnloadedSipRooms(int index) {
          return unloadedSipRooms_.get(index);
        }
        /**
         * <pre>
         * Незагруженные квартиры
         * </pre>
         *
         * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
         */
        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder getUnloadedSipRoomsOrBuilder(
            int index) {
          return unloadedSipRooms_.get(index);
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            output.writeEnum(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errorMessage_);
          }
          for (int i = 0; i < loadedSipRooms_.size(); i++) {
            output.writeMessage(3, loadedSipRooms_.get(i));
          }
          for (int i = 0; i < unloadedSipRooms_.size(); i++) {
            output.writeMessage(4, unloadedSipRooms_.get(i));
          }
          getUnknownFields().writeTo(output);
        }

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

          size = 0;
          if (statusType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.STATUS_TYPE_UNKNOWN.getNumber()) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(1, statusType_);
          }
          if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errorMessage_);
          }
          for (int i = 0; i < loadedSipRooms_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, loadedSipRooms_.get(i));
          }
          for (int i = 0; i < unloadedSipRooms_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, unloadedSipRooms_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms)) {
            return super.equals(obj);
          }
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms) obj;

          if (statusType_ != other.statusType_) return false;
          if (!getErrorMessage()
              .equals(other.getErrorMessage())) return false;
          if (!getLoadedSipRoomsList()
              .equals(other.getLoadedSipRoomsList())) return false;
          if (!getUnloadedSipRoomsList()
              .equals(other.getUnloadedSipRoomsList())) return false;
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + STATUS_TYPE_FIELD_NUMBER;
          hash = (53 * hash) + statusType_;
          hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
          hash = (53 * hash) + getErrorMessage().hashCode();
          if (getLoadedSipRoomsCount() > 0) {
            hash = (37 * hash) + LOADED_SIP_ROOMS_FIELD_NUMBER;
            hash = (53 * hash) + getLoadedSipRoomsList().hashCode();
          }
          if (getUnloadedSipRoomsCount() > 0) {
            hash = (37 * hash) + UNLOADED_SIP_ROOMS_FIELD_NUMBER;
            hash = (53 * hash) + getUnloadedSipRoomsList().hashCode();
          }
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

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

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Настройка квартир
         * </pre>
         *
         * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms)
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRoomsOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.Builder.class);
          }

          // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.newBuilder()
          private Builder() {

          }

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

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            statusType_ = 0;
            errorMessage_ = "";
            if (loadedSipRoomsBuilder_ == null) {
              loadedSipRooms_ = java.util.Collections.emptyList();
            } else {
              loadedSipRooms_ = null;
              loadedSipRoomsBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000004);
            if (unloadedSipRoomsBuilder_ == null) {
              unloadedSipRooms_ = java.util.Collections.emptyList();
            } else {
              unloadedSipRooms_ = null;
              unloadedSipRoomsBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000008);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_descriptor;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms getDefaultInstanceForType() {
            return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.getDefaultInstance();
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms build() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms buildPartial() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms(this);
            buildPartialRepeatedFields(result);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }

          private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms result) {
            if (loadedSipRoomsBuilder_ == null) {
              if (((bitField0_ & 0x00000004) != 0)) {
                loadedSipRooms_ = java.util.Collections.unmodifiableList(loadedSipRooms_);
                bitField0_ = (bitField0_ & ~0x00000004);
              }
              result.loadedSipRooms_ = loadedSipRooms_;
            } else {
              result.loadedSipRooms_ = loadedSipRoomsBuilder_.build();
            }
            if (unloadedSipRoomsBuilder_ == null) {
              if (((bitField0_ & 0x00000008) != 0)) {
                unloadedSipRooms_ = java.util.Collections.unmodifiableList(unloadedSipRooms_);
                bitField0_ = (bitField0_ & ~0x00000008);
              }
              result.unloadedSipRooms_ = unloadedSipRooms_;
            } else {
              result.unloadedSipRooms_ = unloadedSipRoomsBuilder_.build();
            }
          }

          private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms result) {
            int from_bitField0_ = bitField0_;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.statusType_ = statusType_;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.errorMessage_ = errorMessage_;
            }
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms) {
              return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms other) {
            if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.getDefaultInstance()) return this;
            if (other.statusType_ != 0) {
              setStatusTypeValue(other.getStatusTypeValue());
            }
            if (!other.getErrorMessage().isEmpty()) {
              errorMessage_ = other.errorMessage_;
              bitField0_ |= 0x00000002;
              onChanged();
            }
            if (loadedSipRoomsBuilder_ == null) {
              if (!other.loadedSipRooms_.isEmpty()) {
                if (loadedSipRooms_.isEmpty()) {
                  loadedSipRooms_ = other.loadedSipRooms_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                } else {
                  ensureLoadedSipRoomsIsMutable();
                  loadedSipRooms_.addAll(other.loadedSipRooms_);
                }
                onChanged();
              }
            } else {
              if (!other.loadedSipRooms_.isEmpty()) {
                if (loadedSipRoomsBuilder_.isEmpty()) {
                  loadedSipRoomsBuilder_.dispose();
                  loadedSipRoomsBuilder_ = null;
                  loadedSipRooms_ = other.loadedSipRooms_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                  loadedSipRoomsBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getLoadedSipRoomsFieldBuilder() : null;
                } else {
                  loadedSipRoomsBuilder_.addAllMessages(other.loadedSipRooms_);
                }
              }
            }
            if (unloadedSipRoomsBuilder_ == null) {
              if (!other.unloadedSipRooms_.isEmpty()) {
                if (unloadedSipRooms_.isEmpty()) {
                  unloadedSipRooms_ = other.unloadedSipRooms_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                } else {
                  ensureUnloadedSipRoomsIsMutable();
                  unloadedSipRooms_.addAll(other.unloadedSipRooms_);
                }
                onChanged();
              }
            } else {
              if (!other.unloadedSipRooms_.isEmpty()) {
                if (unloadedSipRoomsBuilder_.isEmpty()) {
                  unloadedSipRoomsBuilder_.dispose();
                  unloadedSipRoomsBuilder_ = null;
                  unloadedSipRooms_ = other.unloadedSipRooms_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                  unloadedSipRoomsBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getUnloadedSipRoomsFieldBuilder() : null;
                } else {
                  unloadedSipRoomsBuilder_.addAllMessages(other.unloadedSipRooms_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

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

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 8: {
                    statusType_ = input.readEnum();
                    bitField0_ |= 0x00000001;
                    break;
                  } // case 8
                  case 18: {
                    errorMessage_ = input.readStringRequireUtf8();
                    bitField0_ |= 0x00000002;
                    break;
                  } // case 18
                  case 26: {
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom m =
                        input.readMessage(
                            ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.parser(),
                            extensionRegistry);
                    if (loadedSipRoomsBuilder_ == null) {
                      ensureLoadedSipRoomsIsMutable();
                      loadedSipRooms_.add(m);
                    } else {
                      loadedSipRoomsBuilder_.addMessage(m);
                    }
                    break;
                  } // case 26
                  case 34: {
                    ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError m =
                        input.readMessage(
                            ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.parser(),
                            extensionRegistry);
                    if (unloadedSipRoomsBuilder_ == null) {
                      ensureUnloadedSipRoomsIsMutable();
                      unloadedSipRooms_.add(m);
                    } else {
                      unloadedSipRoomsBuilder_.addMessage(m);
                    }
                    break;
                  } // case 34
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          private int bitField0_;

          private int statusType_ = 0;
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return The enum numeric value on the wire for statusType.
           */
          @java.lang.Override public int getStatusTypeValue() {
            return statusType_;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @param value The enum numeric value on the wire for statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusTypeValue(int value) {
            statusType_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return The statusType.
           */
          @java.lang.Override
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType getStatusType() {
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.forNumber(statusType_);
            return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType.UNRECOGNIZED : result;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @param value The statusType to set.
           * @return This builder for chaining.
           */
          public Builder setStatusType(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StatusType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            statusType_ = value.getNumber();
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Статус конфигурации устройства
           * </pre>
           *
           * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.StatusType status_type = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearStatusType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            statusType_ = 0;
            onChanged();
            return this;
          }

          private java.lang.Object errorMessage_ = "";
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The errorMessage.
           */
          public java.lang.String getErrorMessage() {
            java.lang.Object ref = errorMessage_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              errorMessage_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return The bytes for errorMessage.
           */
          public com.google.protobuf.ByteString
              getErrorMessageBytes() {
            java.lang.Object ref = errorMessage_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              errorMessage_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessage(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearErrorMessage() {
            errorMessage_ = getDefaultInstance().getErrorMessage();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * Текст ошибки
           * </pre>
           *
           * <code>string error_message = 2;</code>
           * @param value The bytes for errorMessage to set.
           * @return This builder for chaining.
           */
          public Builder setErrorMessageBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            checkByteStringIsUtf8(value);
            errorMessage_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }

          private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> loadedSipRooms_ =
            java.util.Collections.emptyList();
          private void ensureLoadedSipRoomsIsMutable() {
            if (!((bitField0_ & 0x00000004) != 0)) {
              loadedSipRooms_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom>(loadedSipRooms_);
              bitField0_ |= 0x00000004;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> loadedSipRoomsBuilder_;

          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> getLoadedSipRoomsList() {
            if (loadedSipRoomsBuilder_ == null) {
              return java.util.Collections.unmodifiableList(loadedSipRooms_);
            } else {
              return loadedSipRoomsBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public int getLoadedSipRoomsCount() {
            if (loadedSipRoomsBuilder_ == null) {
              return loadedSipRooms_.size();
            } else {
              return loadedSipRoomsBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getLoadedSipRooms(int index) {
            if (loadedSipRoomsBuilder_ == null) {
              return loadedSipRooms_.get(index);
            } else {
              return loadedSipRoomsBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder setLoadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom value) {
            if (loadedSipRoomsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedSipRoomsIsMutable();
              loadedSipRooms_.set(index, value);
              onChanged();
            } else {
              loadedSipRoomsBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder setLoadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder builderForValue) {
            if (loadedSipRoomsBuilder_ == null) {
              ensureLoadedSipRoomsIsMutable();
              loadedSipRooms_.set(index, builderForValue.build());
              onChanged();
            } else {
              loadedSipRoomsBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder addLoadedSipRooms(ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom value) {
            if (loadedSipRoomsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedSipRoomsIsMutable();
              loadedSipRooms_.add(value);
              onChanged();
            } else {
              loadedSipRoomsBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder addLoadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom value) {
            if (loadedSipRoomsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureLoadedSipRoomsIsMutable();
              loadedSipRooms_.add(index, value);
              onChanged();
            } else {
              loadedSipRoomsBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder addLoadedSipRooms(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder builderForValue) {
            if (loadedSipRoomsBuilder_ == null) {
              ensureLoadedSipRoomsIsMutable();
              loadedSipRooms_.add(builderForValue.build());
              onChanged();
            } else {
              loadedSipRoomsBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder addLoadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder builderForValue) {
            if (loadedSipRoomsBuilder_ == null) {
              ensureLoadedSipRoomsIsMutable();
              loadedSipRooms_.add(index, builderForValue.build());
              onChanged();
            } else {
              loadedSipRoomsBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder addAllLoadedSipRooms(
              java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom> values) {
            if (loadedSipRoomsBuilder_ == null) {
              ensureLoadedSipRoomsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, loadedSipRooms_);
              onChanged();
            } else {
              loadedSipRoomsBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder clearLoadedSipRooms() {
            if (loadedSipRoomsBuilder_ == null) {
              loadedSipRooms_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
              onChanged();
            } else {
              loadedSipRoomsBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public Builder removeLoadedSipRooms(int index) {
            if (loadedSipRoomsBuilder_ == null) {
              ensureLoadedSipRoomsIsMutable();
              loadedSipRooms_.remove(index);
              onChanged();
            } else {
              loadedSipRoomsBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder getLoadedSipRoomsBuilder(
              int index) {
            return getLoadedSipRoomsFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder getLoadedSipRoomsOrBuilder(
              int index) {
            if (loadedSipRoomsBuilder_ == null) {
              return loadedSipRooms_.get(index);  } else {
              return loadedSipRoomsBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
               getLoadedSipRoomsOrBuilderList() {
            if (loadedSipRoomsBuilder_ != null) {
              return loadedSipRoomsBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(loadedSipRooms_);
            }
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder addLoadedSipRoomsBuilder() {
            return getLoadedSipRoomsFieldBuilder().addBuilder(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.getDefaultInstance());
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder addLoadedSipRoomsBuilder(
              int index) {
            return getLoadedSipRoomsFieldBuilder().addBuilder(
                index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.getDefaultInstance());
          }
          /**
           * <pre>
           * Загруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoom loaded_sip_rooms = 3;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder> 
               getLoadedSipRoomsBuilderList() {
            return getLoadedSipRoomsFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder> 
              getLoadedSipRoomsFieldBuilder() {
            if (loadedSipRoomsBuilder_ == null) {
              loadedSipRoomsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder>(
                      loadedSipRooms_,
                      ((bitField0_ & 0x00000004) != 0),
                      getParentForChildren(),
                      isClean());
              loadedSipRooms_ = null;
            }
            return loadedSipRoomsBuilder_;
          }

          private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError> unloadedSipRooms_ =
            java.util.Collections.emptyList();
          private void ensureUnloadedSipRoomsIsMutable() {
            if (!((bitField0_ & 0x00000008) != 0)) {
              unloadedSipRooms_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError>(unloadedSipRooms_);
              bitField0_ |= 0x00000008;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder> unloadedSipRoomsBuilder_;

          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError> getUnloadedSipRoomsList() {
            if (unloadedSipRoomsBuilder_ == null) {
              return java.util.Collections.unmodifiableList(unloadedSipRooms_);
            } else {
              return unloadedSipRoomsBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public int getUnloadedSipRoomsCount() {
            if (unloadedSipRoomsBuilder_ == null) {
              return unloadedSipRooms_.size();
            } else {
              return unloadedSipRoomsBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError getUnloadedSipRooms(int index) {
            if (unloadedSipRoomsBuilder_ == null) {
              return unloadedSipRooms_.get(index);
            } else {
              return unloadedSipRoomsBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder setUnloadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError value) {
            if (unloadedSipRoomsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedSipRoomsIsMutable();
              unloadedSipRooms_.set(index, value);
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder setUnloadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder builderForValue) {
            if (unloadedSipRoomsBuilder_ == null) {
              ensureUnloadedSipRoomsIsMutable();
              unloadedSipRooms_.set(index, builderForValue.build());
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder addUnloadedSipRooms(ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError value) {
            if (unloadedSipRoomsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedSipRoomsIsMutable();
              unloadedSipRooms_.add(value);
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder addUnloadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError value) {
            if (unloadedSipRoomsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureUnloadedSipRoomsIsMutable();
              unloadedSipRooms_.add(index, value);
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder addUnloadedSipRooms(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder builderForValue) {
            if (unloadedSipRoomsBuilder_ == null) {
              ensureUnloadedSipRoomsIsMutable();
              unloadedSipRooms_.add(builderForValue.build());
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder addUnloadedSipRooms(
              int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder builderForValue) {
            if (unloadedSipRoomsBuilder_ == null) {
              ensureUnloadedSipRoomsIsMutable();
              unloadedSipRooms_.add(index, builderForValue.build());
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder addAllUnloadedSipRooms(
              java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError> values) {
            if (unloadedSipRoomsBuilder_ == null) {
              ensureUnloadedSipRoomsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, unloadedSipRooms_);
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder clearUnloadedSipRooms() {
            if (unloadedSipRoomsBuilder_ == null) {
              unloadedSipRooms_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000008);
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public Builder removeUnloadedSipRooms(int index) {
            if (unloadedSipRoomsBuilder_ == null) {
              ensureUnloadedSipRoomsIsMutable();
              unloadedSipRooms_.remove(index);
              onChanged();
            } else {
              unloadedSipRoomsBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder getUnloadedSipRoomsBuilder(
              int index) {
            return getUnloadedSipRoomsFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder getUnloadedSipRoomsOrBuilder(
              int index) {
            if (unloadedSipRoomsBuilder_ == null) {
              return unloadedSipRooms_.get(index);  } else {
              return unloadedSipRoomsBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder> 
               getUnloadedSipRoomsOrBuilderList() {
            if (unloadedSipRoomsBuilder_ != null) {
              return unloadedSipRoomsBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(unloadedSipRooms_);
            }
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder addUnloadedSipRoomsBuilder() {
            return getUnloadedSipRoomsFieldBuilder().addBuilder(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.getDefaultInstance());
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder addUnloadedSipRoomsBuilder(
              int index) {
            return getUnloadedSipRoomsFieldBuilder().addBuilder(
                index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.getDefaultInstance());
          }
          /**
           * <pre>
           * Незагруженные квартиры
           * </pre>
           *
           * <code>repeated .keyapis.device.v1.SipRoomError unloaded_sip_rooms = 4;</code>
           */
          public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder> 
               getUnloadedSipRoomsBuilderList() {
            return getUnloadedSipRoomsFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder> 
              getUnloadedSipRoomsFieldBuilder() {
            if (unloadedSipRoomsBuilder_ == null) {
              unloadedSipRoomsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder>(
                      unloadedSipRooms_,
                      ((bitField0_ & 0x00000008) != 0),
                      getParentForChildren(),
                      isClean());
              unloadedSipRooms_ = null;
            }
            return unloadedSipRoomsBuilder_;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms)
        }

        // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms)
        private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms();
        }

        public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public static final int PRESET_FIELD_NUMBER = 1;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State preset_;
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the preset field is set.
       */
      @java.lang.Override
      public boolean hasPreset() {
        return preset_ != null;
      }
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The preset.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getPreset() {
        return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
      }
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getPresetOrBuilder() {
        return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
      }

      public static final int SIP_ACCOUNT_FIELD_NUMBER = 2;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sipAccount_;
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
       * @return Whether the sipAccount field is set.
       */
      @java.lang.Override
      public boolean hasSipAccount() {
        return sipAccount_ != null;
      }
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
       * @return The sipAccount.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSipAccount() {
        return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
      }
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSipAccountOrBuilder() {
        return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
      }

      public static final int SIP_ROOMS_FIELD_NUMBER = 3;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms sipRooms_;
      /**
       * <pre>
       * Настройка сип-номеров в помещениях
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
       * @return Whether the sipRooms field is set.
       */
      @java.lang.Override
      public boolean hasSipRooms() {
        return sipRooms_ != null;
      }
      /**
       * <pre>
       * Настройка сип-номеров в помещениях
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
       * @return The sipRooms.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms getSipRooms() {
        return sipRooms_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.getDefaultInstance() : sipRooms_;
      }
      /**
       * <pre>
       * Настройка сип-номеров в помещениях
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRoomsOrBuilder getSipRoomsOrBuilder() {
        return sipRooms_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.getDefaultInstance() : sipRooms_;
      }

      public static final int GATE_FIELD_NUMBER = 4;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State gate_;
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return Whether the gate field is set.
       */
      @java.lang.Override
      public boolean hasGate() {
        return gate_ != null;
      }
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return The gate.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getGate() {
        return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
      }
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getGateOrBuilder() {
        return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
      }

      public static final int RFIDS_FIELD_NUMBER = 5;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids rfids_;
      /**
       * <pre>
       * Настройка ключей
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
       * @return Whether the rfids field is set.
       */
      @java.lang.Override
      public boolean hasRfids() {
        return rfids_ != null;
      }
      /**
       * <pre>
       * Настройка ключей
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
       * @return The rfids.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids getRfids() {
        return rfids_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.getDefaultInstance() : rfids_;
      }
      /**
       * <pre>
       * Настройка ключей
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.RfidsOrBuilder getRfidsOrBuilder() {
        return rfids_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.getDefaultInstance() : rfids_;
      }

      public static final int CODES_FIELD_NUMBER = 6;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes codes_;
      /**
       * <pre>
       * Настройка кодов
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
       * @return Whether the codes field is set.
       */
      @java.lang.Override
      public boolean hasCodes() {
        return codes_ != null;
      }
      /**
       * <pre>
       * Настройка кодов
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
       * @return The codes.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes getCodes() {
        return codes_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.getDefaultInstance() : codes_;
      }
      /**
       * <pre>
       * Настройка кодов
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.CodesOrBuilder getCodesOrBuilder() {
        return codes_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.getDefaultInstance() : codes_;
      }

      public static final int SL3_FIELD_NUMBER = 7;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sl3_;
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return Whether the sl3 field is set.
       */
      @java.lang.Override
      public boolean hasSl3() {
        return sl3_ != null;
      }
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return The sl3.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSl3() {
        return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
      }
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSl3OrBuilder() {
        return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
      }

      public static final int EMERGENCY_CALL_SETTINGS_FIELD_NUMBER = 8;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State emergencyCallSettings_;
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return Whether the emergencyCallSettings field is set.
       */
      @java.lang.Override
      public boolean hasEmergencyCallSettings() {
        return emergencyCallSettings_ != null;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return The emergencyCallSettings.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getEmergencyCallSettings() {
        return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getEmergencyCallSettingsOrBuilder() {
        return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (preset_ != null) {
          output.writeMessage(1, getPreset());
        }
        if (sipAccount_ != null) {
          output.writeMessage(2, getSipAccount());
        }
        if (sipRooms_ != null) {
          output.writeMessage(3, getSipRooms());
        }
        if (gate_ != null) {
          output.writeMessage(4, getGate());
        }
        if (rfids_ != null) {
          output.writeMessage(5, getRfids());
        }
        if (codes_ != null) {
          output.writeMessage(6, getCodes());
        }
        if (sl3_ != null) {
          output.writeMessage(7, getSl3());
        }
        if (emergencyCallSettings_ != null) {
          output.writeMessage(8, getEmergencyCallSettings());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (preset_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getPreset());
        }
        if (sipAccount_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getSipAccount());
        }
        if (sipRooms_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getSipRooms());
        }
        if (gate_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getGate());
        }
        if (rfids_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getRfids());
        }
        if (codes_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getCodes());
        }
        if (sl3_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, getSl3());
        }
        if (emergencyCallSettings_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, getEmergencyCallSettings());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (hasPreset() != other.hasPreset()) return false;
        if (hasPreset()) {
          if (!getPreset()
              .equals(other.getPreset())) return false;
        }
        if (hasSipAccount() != other.hasSipAccount()) return false;
        if (hasSipAccount()) {
          if (!getSipAccount()
              .equals(other.getSipAccount())) return false;
        }
        if (hasSipRooms() != other.hasSipRooms()) return false;
        if (hasSipRooms()) {
          if (!getSipRooms()
              .equals(other.getSipRooms())) return false;
        }
        if (hasGate() != other.hasGate()) return false;
        if (hasGate()) {
          if (!getGate()
              .equals(other.getGate())) return false;
        }
        if (hasRfids() != other.hasRfids()) return false;
        if (hasRfids()) {
          if (!getRfids()
              .equals(other.getRfids())) return false;
        }
        if (hasCodes() != other.hasCodes()) return false;
        if (hasCodes()) {
          if (!getCodes()
              .equals(other.getCodes())) return false;
        }
        if (hasSl3() != other.hasSl3()) return false;
        if (hasSl3()) {
          if (!getSl3()
              .equals(other.getSl3())) return false;
        }
        if (hasEmergencyCallSettings() != other.hasEmergencyCallSettings()) return false;
        if (hasEmergencyCallSettings()) {
          if (!getEmergencyCallSettings()
              .equals(other.getEmergencyCallSettings())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPreset()) {
          hash = (37 * hash) + PRESET_FIELD_NUMBER;
          hash = (53 * hash) + getPreset().hashCode();
        }
        if (hasSipAccount()) {
          hash = (37 * hash) + SIP_ACCOUNT_FIELD_NUMBER;
          hash = (53 * hash) + getSipAccount().hashCode();
        }
        if (hasSipRooms()) {
          hash = (37 * hash) + SIP_ROOMS_FIELD_NUMBER;
          hash = (53 * hash) + getSipRooms().hashCode();
        }
        if (hasGate()) {
          hash = (37 * hash) + GATE_FIELD_NUMBER;
          hash = (53 * hash) + getGate().hashCode();
        }
        if (hasRfids()) {
          hash = (37 * hash) + RFIDS_FIELD_NUMBER;
          hash = (53 * hash) + getRfids().hashCode();
        }
        if (hasCodes()) {
          hash = (37 * hash) + CODES_FIELD_NUMBER;
          hash = (53 * hash) + getCodes().hashCode();
        }
        if (hasSl3()) {
          hash = (37 * hash) + SL3_FIELD_NUMBER;
          hash = (53 * hash) + getSl3().hashCode();
        }
        if (hasEmergencyCallSettings()) {
          hash = (37 * hash) + EMERGENCY_CALL_SETTINGS_FIELD_NUMBER;
          hash = (53 * hash) + getEmergencyCallSettings().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Результат конфигурации устройства
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask.Settings}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceResultTask.Settings)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.SettingsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          preset_ = null;
          if (presetBuilder_ != null) {
            presetBuilder_.dispose();
            presetBuilder_ = null;
          }
          sipAccount_ = null;
          if (sipAccountBuilder_ != null) {
            sipAccountBuilder_.dispose();
            sipAccountBuilder_ = null;
          }
          sipRooms_ = null;
          if (sipRoomsBuilder_ != null) {
            sipRoomsBuilder_.dispose();
            sipRoomsBuilder_ = null;
          }
          gate_ = null;
          if (gateBuilder_ != null) {
            gateBuilder_.dispose();
            gateBuilder_ = null;
          }
          rfids_ = null;
          if (rfidsBuilder_ != null) {
            rfidsBuilder_.dispose();
            rfidsBuilder_ = null;
          }
          codes_ = null;
          if (codesBuilder_ != null) {
            codesBuilder_.dispose();
            codesBuilder_ = null;
          }
          sl3_ = null;
          if (sl3Builder_ != null) {
            sl3Builder_.dispose();
            sl3Builder_ = null;
          }
          emergencyCallSettings_ = null;
          if (emergencyCallSettingsBuilder_ != null) {
            emergencyCallSettingsBuilder_.dispose();
            emergencyCallSettingsBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.preset_ = presetBuilder_ == null
                ? preset_
                : presetBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.sipAccount_ = sipAccountBuilder_ == null
                ? sipAccount_
                : sipAccountBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.sipRooms_ = sipRoomsBuilder_ == null
                ? sipRooms_
                : sipRoomsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.gate_ = gateBuilder_ == null
                ? gate_
                : gateBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.rfids_ = rfidsBuilder_ == null
                ? rfids_
                : rfidsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            result.codes_ = codesBuilder_ == null
                ? codes_
                : codesBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) != 0)) {
            result.sl3_ = sl3Builder_ == null
                ? sl3_
                : sl3Builder_.build();
          }
          if (((from_bitField0_ & 0x00000080) != 0)) {
            result.emergencyCallSettings_ = emergencyCallSettingsBuilder_ == null
                ? emergencyCallSettings_
                : emergencyCallSettingsBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDefaultInstance()) return this;
          if (other.hasPreset()) {
            mergePreset(other.getPreset());
          }
          if (other.hasSipAccount()) {
            mergeSipAccount(other.getSipAccount());
          }
          if (other.hasSipRooms()) {
            mergeSipRooms(other.getSipRooms());
          }
          if (other.hasGate()) {
            mergeGate(other.getGate());
          }
          if (other.hasRfids()) {
            mergeRfids(other.getRfids());
          }
          if (other.hasCodes()) {
            mergeCodes(other.getCodes());
          }
          if (other.hasSl3()) {
            mergeSl3(other.getSl3());
          }
          if (other.hasEmergencyCallSettings()) {
            mergeEmergencyCallSettings(other.getEmergencyCallSettings());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getPresetFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getSipAccountFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getSipRoomsFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000004;
                  break;
                } // case 26
                case 34: {
                  input.readMessage(
                      getGateFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000008;
                  break;
                } // case 34
                case 42: {
                  input.readMessage(
                      getRfidsFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000010;
                  break;
                } // case 42
                case 50: {
                  input.readMessage(
                      getCodesFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000020;
                  break;
                } // case 50
                case 58: {
                  input.readMessage(
                      getSl3FieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000040;
                  break;
                } // case 58
                case 66: {
                  input.readMessage(
                      getEmergencyCallSettingsFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000080;
                  break;
                } // case 66
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State preset_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> presetBuilder_;
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return Whether the preset field is set.
         */
        public boolean hasPreset() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The preset.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getPreset() {
          if (presetBuilder_ == null) {
            return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
          } else {
            return presetBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setPreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (presetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            preset_ = value;
          } else {
            presetBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setPreset(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (presetBuilder_ == null) {
            preset_ = builderForValue.build();
          } else {
            presetBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder mergePreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (presetBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
              preset_ != null &&
              preset_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getPresetBuilder().mergeFrom(value);
            } else {
              preset_ = value;
            }
          } else {
            presetBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder clearPreset() {
          bitField0_ = (bitField0_ & ~0x00000001);
          preset_ = null;
          if (presetBuilder_ != null) {
            presetBuilder_.dispose();
            presetBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getPresetBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getPresetFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getPresetOrBuilder() {
          if (presetBuilder_ != null) {
            return presetBuilder_.getMessageOrBuilder();
          } else {
            return preset_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
          }
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getPresetFieldBuilder() {
          if (presetBuilder_ == null) {
            presetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getPreset(),
                    getParentForChildren(),
                    isClean());
            preset_ = null;
          }
          return presetBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sipAccount_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> sipAccountBuilder_;
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         * @return Whether the sipAccount field is set.
         */
        public boolean hasSipAccount() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         * @return The sipAccount.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSipAccount() {
          if (sipAccountBuilder_ == null) {
            return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
          } else {
            return sipAccountBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         */
        public Builder setSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sipAccountBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            sipAccount_ = value;
          } else {
            sipAccountBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         */
        public Builder setSipAccount(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (sipAccountBuilder_ == null) {
            sipAccount_ = builderForValue.build();
          } else {
            sipAccountBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         */
        public Builder mergeSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sipAccountBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
              sipAccount_ != null &&
              sipAccount_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getSipAccountBuilder().mergeFrom(value);
            } else {
              sipAccount_ = value;
            }
          } else {
            sipAccountBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         */
        public Builder clearSipAccount() {
          bitField0_ = (bitField0_ & ~0x00000002);
          sipAccount_ = null;
          if (sipAccountBuilder_ != null) {
            sipAccountBuilder_.dispose();
            sipAccountBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getSipAccountBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getSipAccountFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSipAccountOrBuilder() {
          if (sipAccountBuilder_ != null) {
            return sipAccountBuilder_.getMessageOrBuilder();
          } else {
            return sipAccount_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
          }
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getSipAccountFieldBuilder() {
          if (sipAccountBuilder_ == null) {
            sipAccountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getSipAccount(),
                    getParentForChildren(),
                    isClean());
            sipAccount_ = null;
          }
          return sipAccountBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms sipRooms_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRoomsOrBuilder> sipRoomsBuilder_;
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         * @return Whether the sipRooms field is set.
         */
        public boolean hasSipRooms() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         * @return The sipRooms.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms getSipRooms() {
          if (sipRoomsBuilder_ == null) {
            return sipRooms_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.getDefaultInstance() : sipRooms_;
          } else {
            return sipRoomsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         */
        public Builder setSipRooms(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms value) {
          if (sipRoomsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            sipRooms_ = value;
          } else {
            sipRoomsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         */
        public Builder setSipRooms(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.Builder builderForValue) {
          if (sipRoomsBuilder_ == null) {
            sipRooms_ = builderForValue.build();
          } else {
            sipRoomsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         */
        public Builder mergeSipRooms(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms value) {
          if (sipRoomsBuilder_ == null) {
            if (((bitField0_ & 0x00000004) != 0) &&
              sipRooms_ != null &&
              sipRooms_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.getDefaultInstance()) {
              getSipRoomsBuilder().mergeFrom(value);
            } else {
              sipRooms_ = value;
            }
          } else {
            sipRoomsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         */
        public Builder clearSipRooms() {
          bitField0_ = (bitField0_ & ~0x00000004);
          sipRooms_ = null;
          if (sipRoomsBuilder_ != null) {
            sipRoomsBuilder_.dispose();
            sipRoomsBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.Builder getSipRoomsBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getSipRoomsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRoomsOrBuilder getSipRoomsOrBuilder() {
          if (sipRoomsBuilder_ != null) {
            return sipRoomsBuilder_.getMessageOrBuilder();
          } else {
            return sipRooms_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.getDefaultInstance() : sipRooms_;
          }
        }
        /**
         * <pre>
         * Настройка сип-номеров в помещениях
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.SipRooms sip_rooms = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRoomsOrBuilder> 
            getSipRoomsFieldBuilder() {
          if (sipRoomsBuilder_ == null) {
            sipRoomsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRooms.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.SipRoomsOrBuilder>(
                    getSipRooms(),
                    getParentForChildren(),
                    isClean());
            sipRooms_ = null;
          }
          return sipRoomsBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State gate_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> gateBuilder_;
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         * @return Whether the gate field is set.
         */
        public boolean hasGate() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         * @return The gate.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getGate() {
          if (gateBuilder_ == null) {
            return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
          } else {
            return gateBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder setGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (gateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            gate_ = value;
          } else {
            gateBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder setGate(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (gateBuilder_ == null) {
            gate_ = builderForValue.build();
          } else {
            gateBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder mergeGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (gateBuilder_ == null) {
            if (((bitField0_ & 0x00000008) != 0) &&
              gate_ != null &&
              gate_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getGateBuilder().mergeFrom(value);
            } else {
              gate_ = value;
            }
          } else {
            gateBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder clearGate() {
          bitField0_ = (bitField0_ & ~0x00000008);
          gate_ = null;
          if (gateBuilder_ != null) {
            gateBuilder_.dispose();
            gateBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getGateBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getGateFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getGateOrBuilder() {
          if (gateBuilder_ != null) {
            return gateBuilder_.getMessageOrBuilder();
          } else {
            return gate_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
          }
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getGateFieldBuilder() {
          if (gateBuilder_ == null) {
            gateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getGate(),
                    getParentForChildren(),
                    isClean());
            gate_ = null;
          }
          return gateBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids rfids_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.RfidsOrBuilder> rfidsBuilder_;
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         * @return Whether the rfids field is set.
         */
        public boolean hasRfids() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         * @return The rfids.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids getRfids() {
          if (rfidsBuilder_ == null) {
            return rfids_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.getDefaultInstance() : rfids_;
          } else {
            return rfidsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         */
        public Builder setRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids value) {
          if (rfidsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            rfids_ = value;
          } else {
            rfidsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         */
        public Builder setRfids(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.Builder builderForValue) {
          if (rfidsBuilder_ == null) {
            rfids_ = builderForValue.build();
          } else {
            rfidsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         */
        public Builder mergeRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids value) {
          if (rfidsBuilder_ == null) {
            if (((bitField0_ & 0x00000010) != 0) &&
              rfids_ != null &&
              rfids_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.getDefaultInstance()) {
              getRfidsBuilder().mergeFrom(value);
            } else {
              rfids_ = value;
            }
          } else {
            rfidsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         */
        public Builder clearRfids() {
          bitField0_ = (bitField0_ & ~0x00000010);
          rfids_ = null;
          if (rfidsBuilder_ != null) {
            rfidsBuilder_.dispose();
            rfidsBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.Builder getRfidsBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getRfidsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.RfidsOrBuilder getRfidsOrBuilder() {
          if (rfidsBuilder_ != null) {
            return rfidsBuilder_.getMessageOrBuilder();
          } else {
            return rfids_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.getDefaultInstance() : rfids_;
          }
        }
        /**
         * <pre>
         * Настройка ключей
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Rfids rfids = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.RfidsOrBuilder> 
            getRfidsFieldBuilder() {
          if (rfidsBuilder_ == null) {
            rfidsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Rfids.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.RfidsOrBuilder>(
                    getRfids(),
                    getParentForChildren(),
                    isClean());
            rfids_ = null;
          }
          return rfidsBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes codes_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.CodesOrBuilder> codesBuilder_;
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         * @return Whether the codes field is set.
         */
        public boolean hasCodes() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         * @return The codes.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes getCodes() {
          if (codesBuilder_ == null) {
            return codes_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.getDefaultInstance() : codes_;
          } else {
            return codesBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         */
        public Builder setCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes value) {
          if (codesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            codes_ = value;
          } else {
            codesBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         */
        public Builder setCodes(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.Builder builderForValue) {
          if (codesBuilder_ == null) {
            codes_ = builderForValue.build();
          } else {
            codesBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         */
        public Builder mergeCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes value) {
          if (codesBuilder_ == null) {
            if (((bitField0_ & 0x00000020) != 0) &&
              codes_ != null &&
              codes_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.getDefaultInstance()) {
              getCodesBuilder().mergeFrom(value);
            } else {
              codes_ = value;
            }
          } else {
            codesBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         */
        public Builder clearCodes() {
          bitField0_ = (bitField0_ & ~0x00000020);
          codes_ = null;
          if (codesBuilder_ != null) {
            codesBuilder_.dispose();
            codesBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.Builder getCodesBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getCodesFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.CodesOrBuilder getCodesOrBuilder() {
          if (codesBuilder_ != null) {
            return codesBuilder_.getMessageOrBuilder();
          } else {
            return codes_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.getDefaultInstance() : codes_;
          }
        }
        /**
         * <pre>
         * Настройка кодов
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.Codes codes = 6;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.CodesOrBuilder> 
            getCodesFieldBuilder() {
          if (codesBuilder_ == null) {
            codesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Codes.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.CodesOrBuilder>(
                    getCodes(),
                    getParentForChildren(),
                    isClean());
            codes_ = null;
          }
          return codesBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sl3_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> sl3Builder_;
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         * @return Whether the sl3 field is set.
         */
        public boolean hasSl3() {
          return ((bitField0_ & 0x00000040) != 0);
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         * @return The sl3.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSl3() {
          if (sl3Builder_ == null) {
            return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
          } else {
            return sl3Builder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder setSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sl3Builder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            sl3_ = value;
          } else {
            sl3Builder_.setMessage(value);
          }
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder setSl3(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (sl3Builder_ == null) {
            sl3_ = builderForValue.build();
          } else {
            sl3Builder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder mergeSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sl3Builder_ == null) {
            if (((bitField0_ & 0x00000040) != 0) &&
              sl3_ != null &&
              sl3_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getSl3Builder().mergeFrom(value);
            } else {
              sl3_ = value;
            }
          } else {
            sl3Builder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder clearSl3() {
          bitField0_ = (bitField0_ & ~0x00000040);
          sl3_ = null;
          if (sl3Builder_ != null) {
            sl3Builder_.dispose();
            sl3Builder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getSl3Builder() {
          bitField0_ |= 0x00000040;
          onChanged();
          return getSl3FieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSl3OrBuilder() {
          if (sl3Builder_ != null) {
            return sl3Builder_.getMessageOrBuilder();
          } else {
            return sl3_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
          }
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getSl3FieldBuilder() {
          if (sl3Builder_ == null) {
            sl3Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getSl3(),
                    getParentForChildren(),
                    isClean());
            sl3_ = null;
          }
          return sl3Builder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State emergencyCallSettings_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> emergencyCallSettingsBuilder_;
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         * @return Whether the emergencyCallSettings field is set.
         */
        public boolean hasEmergencyCallSettings() {
          return ((bitField0_ & 0x00000080) != 0);
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         * @return The emergencyCallSettings.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getEmergencyCallSettings() {
          if (emergencyCallSettingsBuilder_ == null) {
            return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
          } else {
            return emergencyCallSettingsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder setEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (emergencyCallSettingsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            emergencyCallSettings_ = value;
          } else {
            emergencyCallSettingsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000080;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder setEmergencyCallSettings(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (emergencyCallSettingsBuilder_ == null) {
            emergencyCallSettings_ = builderForValue.build();
          } else {
            emergencyCallSettingsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000080;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder mergeEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (emergencyCallSettingsBuilder_ == null) {
            if (((bitField0_ & 0x00000080) != 0) &&
              emergencyCallSettings_ != null &&
              emergencyCallSettings_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getEmergencyCallSettingsBuilder().mergeFrom(value);
            } else {
              emergencyCallSettings_ = value;
            }
          } else {
            emergencyCallSettingsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000080;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder clearEmergencyCallSettings() {
          bitField0_ = (bitField0_ & ~0x00000080);
          emergencyCallSettings_ = null;
          if (emergencyCallSettingsBuilder_ != null) {
            emergencyCallSettingsBuilder_.dispose();
            emergencyCallSettingsBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getEmergencyCallSettingsBuilder() {
          bitField0_ |= 0x00000080;
          onChanged();
          return getEmergencyCallSettingsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getEmergencyCallSettingsOrBuilder() {
          if (emergencyCallSettingsBuilder_ != null) {
            return emergencyCallSettingsBuilder_.getMessageOrBuilder();
          } else {
            return emergencyCallSettings_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
          }
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getEmergencyCallSettingsFieldBuilder() {
          if (emergencyCallSettingsBuilder_ == null) {
            emergencyCallSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getEmergencyCallSettings(),
                    getParentForChildren(),
                    isClean());
            emergencyCallSettings_ = null;
          }
          return emergencyCallSettingsBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceResultTask.Settings)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CONFIGURED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp configuredAt_;
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the configuredAt field is set.
     */
    @java.lang.Override
    public boolean hasConfiguredAt() {
      return configuredAt_ != null;
    }
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The configuredAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getConfiguredAt() {
      return configuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
    }
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getConfiguredAtOrBuilder() {
      return configuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
    }

    public static final int HARDWARE_VERSION_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object hardwareVersion_ = "";
    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The hardwareVersion.
     */
    @java.lang.Override
    public java.lang.String getHardwareVersion() {
      java.lang.Object ref = hardwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        hardwareVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The bytes for hardwareVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHardwareVersionBytes() {
      java.lang.Object ref = hardwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hardwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FIRMWARE_VERSION_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object firmwareVersion_ = "";
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The firmwareVersion.
     */
    @java.lang.Override
    public java.lang.String getFirmwareVersion() {
      java.lang.Object ref = firmwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        firmwareVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The bytes for firmwareVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFirmwareVersionBytes() {
      java.lang.Object ref = firmwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        firmwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SETTINGS_FIELD_NUMBER = 7;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings settings_;
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
     * @return Whether the settings field is set.
     */
    @java.lang.Override
    public boolean hasSettings() {
      return settings_ != null;
    }
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
     * @return The settings.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings getSettings() {
      return settings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDefaultInstance() : settings_;
    }
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.SettingsOrBuilder getSettingsOrBuilder() {
      return settings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDefaultInstance() : settings_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      if (configuredAt_ != null) {
        output.writeMessage(3, getConfiguredAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hardwareVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, hardwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(firmwareVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, firmwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, model_);
      }
      if (settings_ != null) {
        output.writeMessage(7, getSettings());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      if (configuredAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getConfiguredAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hardwareVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, hardwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(firmwareVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, firmwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, model_);
      }
      if (settings_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getSettings());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (hasConfiguredAt() != other.hasConfiguredAt()) return false;
      if (hasConfiguredAt()) {
        if (!getConfiguredAt()
            .equals(other.getConfiguredAt())) return false;
      }
      if (!getHardwareVersion()
          .equals(other.getHardwareVersion())) return false;
      if (!getFirmwareVersion()
          .equals(other.getFirmwareVersion())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (hasSettings() != other.hasSettings()) return false;
      if (hasSettings()) {
        if (!getSettings()
            .equals(other.getSettings())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (hasConfiguredAt()) {
        hash = (37 * hash) + CONFIGURED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getConfiguredAt().hashCode();
      }
      hash = (37 * hash) + HARDWARE_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getHardwareVersion().hashCode();
      hash = (37 * hash) + FIRMWARE_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getFirmwareVersion().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      if (hasSettings()) {
        hash = (37 * hash) + SETTINGS_FIELD_NUMBER;
        hash = (53 * hash) + getSettings().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Результат задачи на конфигурирование устройства.
     * Очередь key.device.configure_device_result
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ConfigureDeviceResultTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ConfigureDeviceResultTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        configuredAt_ = null;
        if (configuredAtBuilder_ != null) {
          configuredAtBuilder_.dispose();
          configuredAtBuilder_ = null;
        }
        hardwareVersion_ = "";
        firmwareVersion_ = "";
        model_ = "";
        settings_ = null;
        if (settingsBuilder_ != null) {
          settingsBuilder_.dispose();
          settingsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ConfigureDeviceResultTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.configuredAt_ = configuredAtBuilder_ == null
              ? configuredAt_
              : configuredAtBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.hardwareVersion_ = hardwareVersion_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.firmwareVersion_ = firmwareVersion_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.settings_ = settingsBuilder_ == null
              ? settings_
              : settingsBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (other.hasConfiguredAt()) {
          mergeConfiguredAt(other.getConfiguredAt());
        }
        if (!other.getHardwareVersion().isEmpty()) {
          hardwareVersion_ = other.hardwareVersion_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getFirmwareVersion().isEmpty()) {
          firmwareVersion_ = other.firmwareVersion_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasSettings()) {
          mergeSettings(other.getSettings());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getConfiguredAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                hardwareVersion_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                firmwareVersion_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getSettingsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp configuredAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> configuredAtBuilder_;
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the configuredAt field is set.
       */
      public boolean hasConfiguredAt() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The configuredAt.
       */
      public com.google.protobuf.Timestamp getConfiguredAt() {
        if (configuredAtBuilder_ == null) {
          return configuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
        } else {
          return configuredAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setConfiguredAt(com.google.protobuf.Timestamp value) {
        if (configuredAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configuredAt_ = value;
        } else {
          configuredAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setConfiguredAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (configuredAtBuilder_ == null) {
          configuredAt_ = builderForValue.build();
        } else {
          configuredAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeConfiguredAt(com.google.protobuf.Timestamp value) {
        if (configuredAtBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            configuredAt_ != null &&
            configuredAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getConfiguredAtBuilder().mergeFrom(value);
          } else {
            configuredAt_ = value;
          }
        } else {
          configuredAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearConfiguredAt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        configuredAt_ = null;
        if (configuredAtBuilder_ != null) {
          configuredAtBuilder_.dispose();
          configuredAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getConfiguredAtBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getConfiguredAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getConfiguredAtOrBuilder() {
        if (configuredAtBuilder_ != null) {
          return configuredAtBuilder_.getMessageOrBuilder();
        } else {
          return configuredAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
        }
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getConfiguredAtFieldBuilder() {
        if (configuredAtBuilder_ == null) {
          configuredAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getConfiguredAt(),
                  getParentForChildren(),
                  isClean());
          configuredAt_ = null;
        }
        return configuredAtBuilder_;
      }

      private java.lang.Object hardwareVersion_ = "";
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @return The hardwareVersion.
       */
      public java.lang.String getHardwareVersion() {
        java.lang.Object ref = hardwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hardwareVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @return The bytes for hardwareVersion.
       */
      public com.google.protobuf.ByteString
          getHardwareVersionBytes() {
        java.lang.Object ref = hardwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hardwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @param value The hardwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHardwareVersion(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        hardwareVersion_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHardwareVersion() {
        hardwareVersion_ = getDefaultInstance().getHardwareVersion();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @param value The bytes for hardwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHardwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        hardwareVersion_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object firmwareVersion_ = "";
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @return The firmwareVersion.
       */
      public java.lang.String getFirmwareVersion() {
        java.lang.Object ref = firmwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          firmwareVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @return The bytes for firmwareVersion.
       */
      public com.google.protobuf.ByteString
          getFirmwareVersionBytes() {
        java.lang.Object ref = firmwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          firmwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @param value The firmwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setFirmwareVersion(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        firmwareVersion_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearFirmwareVersion() {
        firmwareVersion_ = getDefaultInstance().getFirmwareVersion();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @param value The bytes for firmwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setFirmwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        firmwareVersion_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings settings_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.SettingsOrBuilder> settingsBuilder_;
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       * @return Whether the settings field is set.
       */
      public boolean hasSettings() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       * @return The settings.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings getSettings() {
        if (settingsBuilder_ == null) {
          return settings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDefaultInstance() : settings_;
        } else {
          return settingsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder setSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          settings_ = value;
        } else {
          settingsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder setSettings(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          settings_ = builderForValue.build();
        } else {
          settingsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder mergeSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings value) {
        if (settingsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            settings_ != null &&
            settings_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDefaultInstance()) {
            getSettingsBuilder().mergeFrom(value);
          } else {
            settings_ = value;
          }
        } else {
          settingsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder clearSettings() {
        bitField0_ = (bitField0_ & ~0x00000040);
        settings_ = null;
        if (settingsBuilder_ != null) {
          settingsBuilder_.dispose();
          settingsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Builder getSettingsBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getSettingsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.SettingsOrBuilder getSettingsOrBuilder() {
        if (settingsBuilder_ != null) {
          return settingsBuilder_.getMessageOrBuilder();
        } else {
          return settings_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.getDefaultInstance() : settings_;
        }
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings settings = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.SettingsOrBuilder> 
          getSettingsFieldBuilder() {
        if (settingsBuilder_ == null) {
          settingsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.SettingsOrBuilder>(
                  getSettings(),
                  getParentForChildren(),
                  isClean());
          settings_ = null;
        }
        return settingsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ConfigureDeviceResultTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.ConfigureDeviceResultTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CmsServiceAvailableTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.CmsServiceAvailableTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор ОРПОН дома
     * </pre>
     *
     * <code>int64 orpon_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The orponId.
     */
    long getOrponId();
  }
  /**
   * <pre>
   * Задача на использование аналоговых трубок.
   * Очередь key.device.cms_available
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.CmsServiceAvailableTask}
   */
  public static final class CmsServiceAvailableTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.CmsServiceAvailableTask)
      CmsServiceAvailableTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CmsServiceAvailableTask.newBuilder() to construct.
    private CmsServiceAvailableTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CmsServiceAvailableTask() {
      requestId_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsServiceAvailableTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsServiceAvailableTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORPON_ID_FIELD_NUMBER = 2;
    private long orponId_ = 0L;
    /**
     * <pre>
     * Идентификатор ОРПОН дома
     * </pre>
     *
     * <code>int64 orpon_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The orponId.
     */
    @java.lang.Override
    public long getOrponId() {
      return orponId_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (orponId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, orponId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + ORPON_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getOrponId());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на использование аналоговых трубок.
     * Очередь key.device.cms_available
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.CmsServiceAvailableTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.CmsServiceAvailableTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsServiceAvailableTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsServiceAvailableTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsServiceAvailableTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.orponId_ = orponId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getOrponId() != 0L) {
          setOrponId(other.getOrponId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

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

        orponId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ОРПОН дома
       * </pre>
       *
       * <code>int64 orpon_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearOrponId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        orponId_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.CmsServiceAvailableTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.CmsServiceAvailableTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsServiceAvailableTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ControlDeviceTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ControlDeviceTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Распознование лиц
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
     * @return Whether the faceRecognition field is set.
     */
    boolean hasFaceRecognition();
    /**
     * <pre>
     * Распознование лиц
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
     * @return The faceRecognition.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition getFaceRecognition();
    /**
     * <pre>
     * Распознование лиц
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognitionOrBuilder getFaceRecognitionOrBuilder();

    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 8;</code>
     * @return Whether the preset field is set.
     */
    boolean hasPreset();
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 8;</code>
     * @return The preset.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset getPreset();
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 8;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder getPresetOrBuilder();

    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
     * @return Whether the ntpTimezone field is set.
     */
    boolean hasNtpTimezone();
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
     * @return The ntpTimezone.
     */
    com.google.protobuf.StringValue getNtpTimezone();
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
     */
    com.google.protobuf.StringValueOrBuilder getNtpTimezoneOrBuilder();

    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
     * @return Whether the sipAccount field is set.
     */
    boolean hasSipAccount();
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
     * @return The sipAccount.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getSipAccount();
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder getSipAccountOrBuilder();

    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
     * @return Whether the gate field is set.
     */
    boolean hasGate();
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
     * @return The gate.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getGate();
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder getGateOrBuilder();

    /**
     * <pre>
     * Консьерж
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
     * @return Whether the concierge field is set.
     */
    boolean hasConcierge();
    /**
     * <pre>
     * Консьерж
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
     * @return The concierge.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge getConcierge();
    /**
     * <pre>
     * Консьерж
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.ConciergeOrBuilder getConciergeOrBuilder();

    /**
     * <pre>
     * Автосбор
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
     * @return Whether the autocollect field is set.
     */
    boolean hasAutocollect();
    /**
     * <pre>
     * Автосбор
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
     * @return The autocollect.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect getAutocollect();
    /**
     * <pre>
     * Автосбор
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.AutocollectOrBuilder getAutocollectOrBuilder();

    /**
     * <pre>
     * Параметр sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return Whether the sl3 field is set.
     */
    boolean hasSl3();
    /**
     * <pre>
     * Параметр sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return The sl3.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getSl3();
    /**
     * <pre>
     * Параметр sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder getSl3OrBuilder();

    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return Whether the emergencyCallSettings field is set.
     */
    boolean hasEmergencyCallSettings();
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return The emergencyCallSettings.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getEmergencyCallSettings();
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder getEmergencyCallSettingsOrBuilder();
  }
  /**
   * <pre>
   * Задача на конфигурирование устройства.
   * Очередь key.device.control_device
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.ControlDeviceTask}
   */
  public static final class ControlDeviceTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.ControlDeviceTask)
      ControlDeviceTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ControlDeviceTask.newBuilder() to construct.
    private ControlDeviceTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ControlDeviceTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Builder.class);
    }

    public interface FaceRecognitionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ControlDeviceTask.FaceRecognition)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Статус настройки распознавания лиц
       * </pre>
       *
       * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isEnabled.
       */
      boolean getIsEnabled();
    }
    /**
     * <pre>
     * Распознование лиц
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ControlDeviceTask.FaceRecognition}
     */
    public static final class FaceRecognition extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ControlDeviceTask.FaceRecognition)
        FaceRecognitionOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use FaceRecognition.newBuilder() to construct.
      private FaceRecognition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private FaceRecognition() {
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.Builder.class);
      }

      public static final int IS_ENABLED_FIELD_NUMBER = 1;
      private boolean isEnabled_ = false;
      /**
       * <pre>
       * Статус настройки распознавания лиц
       * </pre>
       *
       * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isEnabled.
       */
      @java.lang.Override
      public boolean getIsEnabled() {
        return isEnabled_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (isEnabled_ != false) {
          output.writeBool(1, isEnabled_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (isEnabled_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, isEnabled_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + IS_ENABLED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsEnabled());
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ControlDeviceTask.FaceRecognition}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ControlDeviceTask.FaceRecognition)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognitionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          isEnabled_ = false;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.isEnabled_ = isEnabled_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.getDefaultInstance()) return this;
          if (other.getIsEnabled() != false) {
            setIsEnabled(other.getIsEnabled());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private boolean isEnabled_ ;
        /**
         * <pre>
         * Статус настройки распознавания лиц
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The isEnabled.
         */
        @java.lang.Override
        public boolean getIsEnabled() {
          return isEnabled_;
        }
        /**
         * <pre>
         * Статус настройки распознавания лиц
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The isEnabled to set.
         * @return This builder for chaining.
         */
        public Builder setIsEnabled(boolean value) {

          isEnabled_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Статус настройки распознавания лиц
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearIsEnabled() {
          bitField0_ = (bitField0_ & ~0x00000001);
          isEnabled_ = false;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ControlDeviceTask.FaceRecognition)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ControlDeviceTask.FaceRecognition)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ConciergeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ControlDeviceTask.Concierge)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sipNumber.
       */
      java.lang.String getSipNumber();
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sipNumber.
       */
      com.google.protobuf.ByteString
          getSipNumberBytes();

      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>int32 room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      int getRoomNumber();
    }
    /**
     * <pre>
     * Консьерж
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ControlDeviceTask.Concierge}
     */
    public static final class Concierge extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ControlDeviceTask.Concierge)
        ConciergeOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Concierge.newBuilder() to construct.
      private Concierge(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Concierge() {
        sipNumber_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.Builder.class);
      }

      public static final int SIP_NUMBER_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object sipNumber_ = "";
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sipNumber.
       */
      @java.lang.Override
      public java.lang.String getSipNumber() {
        java.lang.Object ref = sipNumber_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sipNumber_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sipNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSipNumberBytes() {
        java.lang.Object ref = sipNumber_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sipNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
      private int roomNumber_ = 0;
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>int32 room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      @java.lang.Override
      public int getRoomNumber() {
        return roomNumber_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

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

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

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

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ControlDeviceTask.Concierge}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ControlDeviceTask.Concierge)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.ConciergeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.newBuilder()
        private Builder() {

        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.sipNumber_ = sipNumber_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.roomNumber_ = roomNumber_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.getDefaultInstance()) return this;
          if (!other.getSipNumber().isEmpty()) {
            sipNumber_ = other.sipNumber_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.getRoomNumber() != 0) {
            setRoomNumber(other.getRoomNumber());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private java.lang.Object sipNumber_ = "";
        /**
         * <pre>
         * Номер сип-трубки.
         * # Диапазон: 5..14
         * </pre>
         *
         * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The sipNumber.
         */
        public java.lang.String getSipNumber() {
          java.lang.Object ref = sipNumber_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            sipNumber_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Номер сип-трубки.
         * # Диапазон: 5..14
         * </pre>
         *
         * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for sipNumber.
         */
        public com.google.protobuf.ByteString
            getSipNumberBytes() {
          java.lang.Object ref = sipNumber_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            sipNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Номер сип-трубки.
         * # Диапазон: 5..14
         * </pre>
         *
         * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The sipNumber to set.
         * @return This builder for chaining.
         */
        public Builder setSipNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          sipNumber_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер сип-трубки.
         * # Диапазон: 5..14
         * </pre>
         *
         * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearSipNumber() {
          sipNumber_ = getDefaultInstance().getSipNumber();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер сип-трубки.
         * # Диапазон: 5..14
         * </pre>
         *
         * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for sipNumber to set.
         * @return This builder for chaining.
         */
        public Builder setSipNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          sipNumber_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private int roomNumber_ ;
        /**
         * <pre>
         * Номер помещения.
         * # Диапазон: 1..10000
         * </pre>
         *
         * <code>int32 room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The roomNumber.
         */
        @java.lang.Override
        public int getRoomNumber() {
          return roomNumber_;
        }
        /**
         * <pre>
         * Номер помещения.
         * # Диапазон: 1..10000
         * </pre>
         *
         * <code>int32 room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumber(int value) {

          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер помещения.
         * # Диапазон: 1..10000
         * </pre>
         *
         * <code>int32 room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearRoomNumber() {
          bitField0_ = (bitField0_ & ~0x00000002);
          roomNumber_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ControlDeviceTask.Concierge)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ControlDeviceTask.Concierge)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface AutocollectOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ControlDeviceTask.Autocollect)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Статус настройки автосбор
       * </pre>
       *
       * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isEnabled.
       */
      boolean getIsEnabled();
    }
    /**
     * <pre>
     * Автосбор
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ControlDeviceTask.Autocollect}
     */
    public static final class Autocollect extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ControlDeviceTask.Autocollect)
        AutocollectOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Autocollect.newBuilder() to construct.
      private Autocollect(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Autocollect() {
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.Builder.class);
      }

      public static final int IS_ENABLED_FIELD_NUMBER = 1;
      private boolean isEnabled_ = false;
      /**
       * <pre>
       * Статус настройки автосбор
       * </pre>
       *
       * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The isEnabled.
       */
      @java.lang.Override
      public boolean getIsEnabled() {
        return isEnabled_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (isEnabled_ != false) {
          output.writeBool(1, isEnabled_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (isEnabled_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, isEnabled_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + IS_ENABLED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsEnabled());
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ControlDeviceTask.Autocollect}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ControlDeviceTask.Autocollect)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.AutocollectOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          isEnabled_ = false;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.isEnabled_ = isEnabled_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.getDefaultInstance()) return this;
          if (other.getIsEnabled() != false) {
            setIsEnabled(other.getIsEnabled());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private boolean isEnabled_ ;
        /**
         * <pre>
         * Статус настройки автосбор
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The isEnabled.
         */
        @java.lang.Override
        public boolean getIsEnabled() {
          return isEnabled_;
        }
        /**
         * <pre>
         * Статус настройки автосбор
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The isEnabled to set.
         * @return This builder for chaining.
         */
        public Builder setIsEnabled(boolean value) {

          isEnabled_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Статус настройки автосбор
         * </pre>
         *
         * <code>bool is_enabled = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearIsEnabled() {
          bitField0_ = (bitField0_ & ~0x00000001);
          isEnabled_ = false;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ControlDeviceTask.Autocollect)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ControlDeviceTask.Autocollect)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Адрес устройства
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя устройства
     * </pre>
     *
     * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль пользователья устройства
     * </pre>
     *
     * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int FACE_RECOGNITION_FIELD_NUMBER = 7;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition faceRecognition_;
    /**
     * <pre>
     * Распознование лиц
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
     * @return Whether the faceRecognition field is set.
     */
    @java.lang.Override
    public boolean hasFaceRecognition() {
      return faceRecognition_ != null;
    }
    /**
     * <pre>
     * Распознование лиц
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
     * @return The faceRecognition.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition getFaceRecognition() {
      return faceRecognition_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.getDefaultInstance() : faceRecognition_;
    }
    /**
     * <pre>
     * Распознование лиц
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognitionOrBuilder getFaceRecognitionOrBuilder() {
      return faceRecognition_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.getDefaultInstance() : faceRecognition_;
    }

    public static final int PRESET_FIELD_NUMBER = 8;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset preset_;
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 8;</code>
     * @return Whether the preset field is set.
     */
    @java.lang.Override
    public boolean hasPreset() {
      return preset_ != null;
    }
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 8;</code>
     * @return The preset.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset getPreset() {
      return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
    }
    /**
     * <pre>
     * Пресет устройства
     * </pre>
     *
     * <code>.keyapis.device.v1.Preset preset = 8;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder getPresetOrBuilder() {
      return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
    }

    public static final int NTP_TIMEZONE_FIELD_NUMBER = 9;
    private com.google.protobuf.StringValue ntpTimezone_;
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
     * @return Whether the ntpTimezone field is set.
     */
    @java.lang.Override
    public boolean hasNtpTimezone() {
      return ntpTimezone_ != null;
    }
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
     * @return The ntpTimezone.
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getNtpTimezone() {
      return ntpTimezone_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : ntpTimezone_;
    }
    /**
     * <pre>
     * Таймзона NTP
     * </pre>
     *
     * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValueOrBuilder getNtpTimezoneOrBuilder() {
      return ntpTimezone_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : ntpTimezone_;
    }

    public static final int SIP_ACCOUNT_FIELD_NUMBER = 10;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount sipAccount_;
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
     * @return Whether the sipAccount field is set.
     */
    @java.lang.Override
    public boolean hasSipAccount() {
      return sipAccount_ != null;
    }
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
     * @return The sipAccount.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getSipAccount() {
      return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
    }
    /**
     * <pre>
     * Sip аккаунт
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder getSipAccountOrBuilder() {
      return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
    }

    public static final int GATE_FIELD_NUMBER = 11;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate gate_;
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
     * @return Whether the gate field is set.
     */
    @java.lang.Override
    public boolean hasGate() {
      return gate_ != null;
    }
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
     * @return The gate.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getGate() {
      return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
    }
    /**
     * <pre>
     * Параметры калитки
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder getGateOrBuilder() {
      return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
    }

    public static final int CONCIERGE_FIELD_NUMBER = 12;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge concierge_;
    /**
     * <pre>
     * Консьерж
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
     * @return Whether the concierge field is set.
     */
    @java.lang.Override
    public boolean hasConcierge() {
      return concierge_ != null;
    }
    /**
     * <pre>
     * Консьерж
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
     * @return The concierge.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge getConcierge() {
      return concierge_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.getDefaultInstance() : concierge_;
    }
    /**
     * <pre>
     * Консьерж
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.ConciergeOrBuilder getConciergeOrBuilder() {
      return concierge_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.getDefaultInstance() : concierge_;
    }

    public static final int AUTOCOLLECT_FIELD_NUMBER = 13;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect autocollect_;
    /**
     * <pre>
     * Автосбор
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
     * @return Whether the autocollect field is set.
     */
    @java.lang.Override
    public boolean hasAutocollect() {
      return autocollect_ != null;
    }
    /**
     * <pre>
     * Автосбор
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
     * @return The autocollect.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect getAutocollect() {
      return autocollect_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.getDefaultInstance() : autocollect_;
    }
    /**
     * <pre>
     * Автосбор
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.AutocollectOrBuilder getAutocollectOrBuilder() {
      return autocollect_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.getDefaultInstance() : autocollect_;
    }

    public static final int SL3_FIELD_NUMBER = 14;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 sl3_;
    /**
     * <pre>
     * Параметр sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return Whether the sl3 field is set.
     */
    @java.lang.Override
    public boolean hasSl3() {
      return sl3_ != null;
    }
    /**
     * <pre>
     * Параметр sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     * @return The sl3.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getSl3() {
      return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
    }
    /**
     * <pre>
     * Параметр sl3
     * </pre>
     *
     * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder getSl3OrBuilder() {
      return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
    }

    public static final int EMERGENCY_CALL_SETTINGS_FIELD_NUMBER = 15;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings emergencyCallSettings_;
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return Whether the emergencyCallSettings field is set.
     */
    @java.lang.Override
    public boolean hasEmergencyCallSettings() {
      return emergencyCallSettings_ != null;
    }
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     * @return The emergencyCallSettings.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getEmergencyCallSettings() {
      return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
    }
    /**
     * <pre>
     * Настройки вызова экстренной службы
     * </pre>
     *
     * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder getEmergencyCallSettingsOrBuilder() {
      return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      if (faceRecognition_ != null) {
        output.writeMessage(7, getFaceRecognition());
      }
      if (preset_ != null) {
        output.writeMessage(8, getPreset());
      }
      if (ntpTimezone_ != null) {
        output.writeMessage(9, getNtpTimezone());
      }
      if (sipAccount_ != null) {
        output.writeMessage(10, getSipAccount());
      }
      if (gate_ != null) {
        output.writeMessage(11, getGate());
      }
      if (concierge_ != null) {
        output.writeMessage(12, getConcierge());
      }
      if (autocollect_ != null) {
        output.writeMessage(13, getAutocollect());
      }
      if (sl3_ != null) {
        output.writeMessage(14, getSl3());
      }
      if (emergencyCallSettings_ != null) {
        output.writeMessage(15, getEmergencyCallSettings());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      if (faceRecognition_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getFaceRecognition());
      }
      if (preset_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getPreset());
      }
      if (ntpTimezone_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getNtpTimezone());
      }
      if (sipAccount_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getSipAccount());
      }
      if (gate_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getGate());
      }
      if (concierge_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getConcierge());
      }
      if (autocollect_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getAutocollect());
      }
      if (sl3_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getSl3());
      }
      if (emergencyCallSettings_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getEmergencyCallSettings());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (hasFaceRecognition() != other.hasFaceRecognition()) return false;
      if (hasFaceRecognition()) {
        if (!getFaceRecognition()
            .equals(other.getFaceRecognition())) return false;
      }
      if (hasPreset() != other.hasPreset()) return false;
      if (hasPreset()) {
        if (!getPreset()
            .equals(other.getPreset())) return false;
      }
      if (hasNtpTimezone() != other.hasNtpTimezone()) return false;
      if (hasNtpTimezone()) {
        if (!getNtpTimezone()
            .equals(other.getNtpTimezone())) return false;
      }
      if (hasSipAccount() != other.hasSipAccount()) return false;
      if (hasSipAccount()) {
        if (!getSipAccount()
            .equals(other.getSipAccount())) return false;
      }
      if (hasGate() != other.hasGate()) return false;
      if (hasGate()) {
        if (!getGate()
            .equals(other.getGate())) return false;
      }
      if (hasConcierge() != other.hasConcierge()) return false;
      if (hasConcierge()) {
        if (!getConcierge()
            .equals(other.getConcierge())) return false;
      }
      if (hasAutocollect() != other.hasAutocollect()) return false;
      if (hasAutocollect()) {
        if (!getAutocollect()
            .equals(other.getAutocollect())) return false;
      }
      if (hasSl3() != other.hasSl3()) return false;
      if (hasSl3()) {
        if (!getSl3()
            .equals(other.getSl3())) return false;
      }
      if (hasEmergencyCallSettings() != other.hasEmergencyCallSettings()) return false;
      if (hasEmergencyCallSettings()) {
        if (!getEmergencyCallSettings()
            .equals(other.getEmergencyCallSettings())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (hasFaceRecognition()) {
        hash = (37 * hash) + FACE_RECOGNITION_FIELD_NUMBER;
        hash = (53 * hash) + getFaceRecognition().hashCode();
      }
      if (hasPreset()) {
        hash = (37 * hash) + PRESET_FIELD_NUMBER;
        hash = (53 * hash) + getPreset().hashCode();
      }
      if (hasNtpTimezone()) {
        hash = (37 * hash) + NTP_TIMEZONE_FIELD_NUMBER;
        hash = (53 * hash) + getNtpTimezone().hashCode();
      }
      if (hasSipAccount()) {
        hash = (37 * hash) + SIP_ACCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getSipAccount().hashCode();
      }
      if (hasGate()) {
        hash = (37 * hash) + GATE_FIELD_NUMBER;
        hash = (53 * hash) + getGate().hashCode();
      }
      if (hasConcierge()) {
        hash = (37 * hash) + CONCIERGE_FIELD_NUMBER;
        hash = (53 * hash) + getConcierge().hashCode();
      }
      if (hasAutocollect()) {
        hash = (37 * hash) + AUTOCOLLECT_FIELD_NUMBER;
        hash = (53 * hash) + getAutocollect().hashCode();
      }
      if (hasSl3()) {
        hash = (37 * hash) + SL3_FIELD_NUMBER;
        hash = (53 * hash) + getSl3().hashCode();
      }
      if (hasEmergencyCallSettings()) {
        hash = (37 * hash) + EMERGENCY_CALL_SETTINGS_FIELD_NUMBER;
        hash = (53 * hash) + getEmergencyCallSettings().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на конфигурирование устройства.
     * Очередь key.device.control_device
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ControlDeviceTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ControlDeviceTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        faceRecognition_ = null;
        if (faceRecognitionBuilder_ != null) {
          faceRecognitionBuilder_.dispose();
          faceRecognitionBuilder_ = null;
        }
        preset_ = null;
        if (presetBuilder_ != null) {
          presetBuilder_.dispose();
          presetBuilder_ = null;
        }
        ntpTimezone_ = null;
        if (ntpTimezoneBuilder_ != null) {
          ntpTimezoneBuilder_.dispose();
          ntpTimezoneBuilder_ = null;
        }
        sipAccount_ = null;
        if (sipAccountBuilder_ != null) {
          sipAccountBuilder_.dispose();
          sipAccountBuilder_ = null;
        }
        gate_ = null;
        if (gateBuilder_ != null) {
          gateBuilder_.dispose();
          gateBuilder_ = null;
        }
        concierge_ = null;
        if (conciergeBuilder_ != null) {
          conciergeBuilder_.dispose();
          conciergeBuilder_ = null;
        }
        autocollect_ = null;
        if (autocollectBuilder_ != null) {
          autocollectBuilder_.dispose();
          autocollectBuilder_ = null;
        }
        sl3_ = null;
        if (sl3Builder_ != null) {
          sl3Builder_.dispose();
          sl3Builder_ = null;
        }
        emergencyCallSettings_ = null;
        if (emergencyCallSettingsBuilder_ != null) {
          emergencyCallSettingsBuilder_.dispose();
          emergencyCallSettingsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.faceRecognition_ = faceRecognitionBuilder_ == null
              ? faceRecognition_
              : faceRecognitionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.preset_ = presetBuilder_ == null
              ? preset_
              : presetBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.ntpTimezone_ = ntpTimezoneBuilder_ == null
              ? ntpTimezone_
              : ntpTimezoneBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.sipAccount_ = sipAccountBuilder_ == null
              ? sipAccount_
              : sipAccountBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.gate_ = gateBuilder_ == null
              ? gate_
              : gateBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.concierge_ = conciergeBuilder_ == null
              ? concierge_
              : conciergeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.autocollect_ = autocollectBuilder_ == null
              ? autocollect_
              : autocollectBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.sl3_ = sl3Builder_ == null
              ? sl3_
              : sl3Builder_.build();
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.emergencyCallSettings_ = emergencyCallSettingsBuilder_ == null
              ? emergencyCallSettings_
              : emergencyCallSettingsBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (other.hasFaceRecognition()) {
          mergeFaceRecognition(other.getFaceRecognition());
        }
        if (other.hasPreset()) {
          mergePreset(other.getPreset());
        }
        if (other.hasNtpTimezone()) {
          mergeNtpTimezone(other.getNtpTimezone());
        }
        if (other.hasSipAccount()) {
          mergeSipAccount(other.getSipAccount());
        }
        if (other.hasGate()) {
          mergeGate(other.getGate());
        }
        if (other.hasConcierge()) {
          mergeConcierge(other.getConcierge());
        }
        if (other.hasAutocollect()) {
          mergeAutocollect(other.getAutocollect());
        }
        if (other.hasSl3()) {
          mergeSl3(other.getSl3());
        }
        if (other.hasEmergencyCallSettings()) {
          mergeEmergencyCallSettings(other.getEmergencyCallSettings());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                input.readMessage(
                    getFaceRecognitionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getPresetFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    getNtpTimezoneFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                input.readMessage(
                    getSipAccountFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    getGateFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    getConciergeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    getAutocollectFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    getSl3FieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    getEmergencyCallSettingsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00004000;
                break;
              } // case 122
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Адрес устройства
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя устройства
       * </pre>
       *
       * <code>string username = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль пользователья устройства
       * </pre>
       *
       * <code>string password = 5 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition faceRecognition_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognitionOrBuilder> faceRecognitionBuilder_;
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       * @return Whether the faceRecognition field is set.
       */
      public boolean hasFaceRecognition() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       * @return The faceRecognition.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition getFaceRecognition() {
        if (faceRecognitionBuilder_ == null) {
          return faceRecognition_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.getDefaultInstance() : faceRecognition_;
        } else {
          return faceRecognitionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       */
      public Builder setFaceRecognition(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition value) {
        if (faceRecognitionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          faceRecognition_ = value;
        } else {
          faceRecognitionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       */
      public Builder setFaceRecognition(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.Builder builderForValue) {
        if (faceRecognitionBuilder_ == null) {
          faceRecognition_ = builderForValue.build();
        } else {
          faceRecognitionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       */
      public Builder mergeFaceRecognition(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition value) {
        if (faceRecognitionBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            faceRecognition_ != null &&
            faceRecognition_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.getDefaultInstance()) {
            getFaceRecognitionBuilder().mergeFrom(value);
          } else {
            faceRecognition_ = value;
          }
        } else {
          faceRecognitionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       */
      public Builder clearFaceRecognition() {
        bitField0_ = (bitField0_ & ~0x00000040);
        faceRecognition_ = null;
        if (faceRecognitionBuilder_ != null) {
          faceRecognitionBuilder_.dispose();
          faceRecognitionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.Builder getFaceRecognitionBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getFaceRecognitionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognitionOrBuilder getFaceRecognitionOrBuilder() {
        if (faceRecognitionBuilder_ != null) {
          return faceRecognitionBuilder_.getMessageOrBuilder();
        } else {
          return faceRecognition_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.getDefaultInstance() : faceRecognition_;
        }
      }
      /**
       * <pre>
       * Распознование лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.FaceRecognition face_recognition = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognitionOrBuilder> 
          getFaceRecognitionFieldBuilder() {
        if (faceRecognitionBuilder_ == null) {
          faceRecognitionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognition.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.FaceRecognitionOrBuilder>(
                  getFaceRecognition(),
                  getParentForChildren(),
                  isClean());
          faceRecognition_ = null;
        }
        return faceRecognitionBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset preset_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder> presetBuilder_;
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       * @return Whether the preset field is set.
       */
      public boolean hasPreset() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       * @return The preset.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset getPreset() {
        if (presetBuilder_ == null) {
          return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
        } else {
          return presetBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       */
      public Builder setPreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset value) {
        if (presetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          preset_ = value;
        } else {
          presetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       */
      public Builder setPreset(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder builderForValue) {
        if (presetBuilder_ == null) {
          preset_ = builderForValue.build();
        } else {
          presetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       */
      public Builder mergePreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset value) {
        if (presetBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            preset_ != null &&
            preset_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance()) {
            getPresetBuilder().mergeFrom(value);
          } else {
            preset_ = value;
          }
        } else {
          presetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       */
      public Builder clearPreset() {
        bitField0_ = (bitField0_ & ~0x00000080);
        preset_ = null;
        if (presetBuilder_ != null) {
          presetBuilder_.dispose();
          presetBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder getPresetBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getPresetFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder getPresetOrBuilder() {
        if (presetBuilder_ != null) {
          return presetBuilder_.getMessageOrBuilder();
        } else {
          return preset_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.getDefaultInstance() : preset_;
        }
      }
      /**
       * <pre>
       * Пресет устройства
       * </pre>
       *
       * <code>.keyapis.device.v1.Preset preset = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder> 
          getPresetFieldBuilder() {
        if (presetBuilder_ == null) {
          presetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Preset.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.PresetOrBuilder>(
                  getPreset(),
                  getParentForChildren(),
                  isClean());
          preset_ = null;
        }
        return presetBuilder_;
      }

      private com.google.protobuf.StringValue ntpTimezone_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> ntpTimezoneBuilder_;
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       * @return Whether the ntpTimezone field is set.
       */
      public boolean hasNtpTimezone() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       * @return The ntpTimezone.
       */
      public com.google.protobuf.StringValue getNtpTimezone() {
        if (ntpTimezoneBuilder_ == null) {
          return ntpTimezone_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : ntpTimezone_;
        } else {
          return ntpTimezoneBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       */
      public Builder setNtpTimezone(com.google.protobuf.StringValue value) {
        if (ntpTimezoneBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ntpTimezone_ = value;
        } else {
          ntpTimezoneBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       */
      public Builder setNtpTimezone(
          com.google.protobuf.StringValue.Builder builderForValue) {
        if (ntpTimezoneBuilder_ == null) {
          ntpTimezone_ = builderForValue.build();
        } else {
          ntpTimezoneBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       */
      public Builder mergeNtpTimezone(com.google.protobuf.StringValue value) {
        if (ntpTimezoneBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
            ntpTimezone_ != null &&
            ntpTimezone_ != com.google.protobuf.StringValue.getDefaultInstance()) {
            getNtpTimezoneBuilder().mergeFrom(value);
          } else {
            ntpTimezone_ = value;
          }
        } else {
          ntpTimezoneBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       */
      public Builder clearNtpTimezone() {
        bitField0_ = (bitField0_ & ~0x00000100);
        ntpTimezone_ = null;
        if (ntpTimezoneBuilder_ != null) {
          ntpTimezoneBuilder_.dispose();
          ntpTimezoneBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       */
      public com.google.protobuf.StringValue.Builder getNtpTimezoneBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getNtpTimezoneFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       */
      public com.google.protobuf.StringValueOrBuilder getNtpTimezoneOrBuilder() {
        if (ntpTimezoneBuilder_ != null) {
          return ntpTimezoneBuilder_.getMessageOrBuilder();
        } else {
          return ntpTimezone_ == null ?
              com.google.protobuf.StringValue.getDefaultInstance() : ntpTimezone_;
        }
      }
      /**
       * <pre>
       * Таймзона NTP
       * </pre>
       *
       * <code>.google.protobuf.StringValue ntp_timezone = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> 
          getNtpTimezoneFieldBuilder() {
        if (ntpTimezoneBuilder_ == null) {
          ntpTimezoneBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder>(
                  getNtpTimezone(),
                  getParentForChildren(),
                  isClean());
          ntpTimezone_ = null;
        }
        return ntpTimezoneBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount sipAccount_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder> sipAccountBuilder_;
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       * @return Whether the sipAccount field is set.
       */
      public boolean hasSipAccount() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       * @return The sipAccount.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount getSipAccount() {
        if (sipAccountBuilder_ == null) {
          return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
        } else {
          return sipAccountBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       */
      public Builder setSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount value) {
        if (sipAccountBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sipAccount_ = value;
        } else {
          sipAccountBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       */
      public Builder setSipAccount(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder builderForValue) {
        if (sipAccountBuilder_ == null) {
          sipAccount_ = builderForValue.build();
        } else {
          sipAccountBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       */
      public Builder mergeSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount value) {
        if (sipAccountBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0) &&
            sipAccount_ != null &&
            sipAccount_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance()) {
            getSipAccountBuilder().mergeFrom(value);
          } else {
            sipAccount_ = value;
          }
        } else {
          sipAccountBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       */
      public Builder clearSipAccount() {
        bitField0_ = (bitField0_ & ~0x00000200);
        sipAccount_ = null;
        if (sipAccountBuilder_ != null) {
          sipAccountBuilder_.dispose();
          sipAccountBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder getSipAccountBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getSipAccountFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder getSipAccountOrBuilder() {
        if (sipAccountBuilder_ != null) {
          return sipAccountBuilder_.getMessageOrBuilder();
        } else {
          return sipAccount_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.getDefaultInstance() : sipAccount_;
        }
      }
      /**
       * <pre>
       * Sip аккаунт
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.SipAccount sip_account = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder> 
          getSipAccountFieldBuilder() {
        if (sipAccountBuilder_ == null) {
          sipAccountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccount.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.SipAccountOrBuilder>(
                  getSipAccount(),
                  getParentForChildren(),
                  isClean());
          sipAccount_ = null;
        }
        return sipAccountBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate gate_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder> gateBuilder_;
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       * @return Whether the gate field is set.
       */
      public boolean hasGate() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       * @return The gate.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate getGate() {
        if (gateBuilder_ == null) {
          return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
        } else {
          return gateBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       */
      public Builder setGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate value) {
        if (gateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gate_ = value;
        } else {
          gateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       */
      public Builder setGate(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder builderForValue) {
        if (gateBuilder_ == null) {
          gate_ = builderForValue.build();
        } else {
          gateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       */
      public Builder mergeGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate value) {
        if (gateBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0) &&
            gate_ != null &&
            gate_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance()) {
            getGateBuilder().mergeFrom(value);
          } else {
            gate_ = value;
          }
        } else {
          gateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       */
      public Builder clearGate() {
        bitField0_ = (bitField0_ & ~0x00000400);
        gate_ = null;
        if (gateBuilder_ != null) {
          gateBuilder_.dispose();
          gateBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder getGateBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getGateFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder getGateOrBuilder() {
        if (gateBuilder_ != null) {
          return gateBuilder_.getMessageOrBuilder();
        } else {
          return gate_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.getDefaultInstance() : gate_;
        }
      }
      /**
       * <pre>
       * Параметры калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Gate gate = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder> 
          getGateFieldBuilder() {
        if (gateBuilder_ == null) {
          gateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Gate.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.GateOrBuilder>(
                  getGate(),
                  getParentForChildren(),
                  isClean());
          gate_ = null;
        }
        return gateBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge concierge_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.ConciergeOrBuilder> conciergeBuilder_;
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       * @return Whether the concierge field is set.
       */
      public boolean hasConcierge() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       * @return The concierge.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge getConcierge() {
        if (conciergeBuilder_ == null) {
          return concierge_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.getDefaultInstance() : concierge_;
        } else {
          return conciergeBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       */
      public Builder setConcierge(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge value) {
        if (conciergeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          concierge_ = value;
        } else {
          conciergeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       */
      public Builder setConcierge(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.Builder builderForValue) {
        if (conciergeBuilder_ == null) {
          concierge_ = builderForValue.build();
        } else {
          conciergeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       */
      public Builder mergeConcierge(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge value) {
        if (conciergeBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
            concierge_ != null &&
            concierge_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.getDefaultInstance()) {
            getConciergeBuilder().mergeFrom(value);
          } else {
            concierge_ = value;
          }
        } else {
          conciergeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       */
      public Builder clearConcierge() {
        bitField0_ = (bitField0_ & ~0x00000800);
        concierge_ = null;
        if (conciergeBuilder_ != null) {
          conciergeBuilder_.dispose();
          conciergeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.Builder getConciergeBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getConciergeFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.ConciergeOrBuilder getConciergeOrBuilder() {
        if (conciergeBuilder_ != null) {
          return conciergeBuilder_.getMessageOrBuilder();
        } else {
          return concierge_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.getDefaultInstance() : concierge_;
        }
      }
      /**
       * <pre>
       * Консьерж
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Concierge concierge = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.ConciergeOrBuilder> 
          getConciergeFieldBuilder() {
        if (conciergeBuilder_ == null) {
          conciergeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Concierge.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.ConciergeOrBuilder>(
                  getConcierge(),
                  getParentForChildren(),
                  isClean());
          concierge_ = null;
        }
        return conciergeBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect autocollect_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.AutocollectOrBuilder> autocollectBuilder_;
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       * @return Whether the autocollect field is set.
       */
      public boolean hasAutocollect() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       * @return The autocollect.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect getAutocollect() {
        if (autocollectBuilder_ == null) {
          return autocollect_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.getDefaultInstance() : autocollect_;
        } else {
          return autocollectBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       */
      public Builder setAutocollect(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect value) {
        if (autocollectBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          autocollect_ = value;
        } else {
          autocollectBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       */
      public Builder setAutocollect(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.Builder builderForValue) {
        if (autocollectBuilder_ == null) {
          autocollect_ = builderForValue.build();
        } else {
          autocollectBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       */
      public Builder mergeAutocollect(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect value) {
        if (autocollectBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0) &&
            autocollect_ != null &&
            autocollect_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.getDefaultInstance()) {
            getAutocollectBuilder().mergeFrom(value);
          } else {
            autocollect_ = value;
          }
        } else {
          autocollectBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       */
      public Builder clearAutocollect() {
        bitField0_ = (bitField0_ & ~0x00001000);
        autocollect_ = null;
        if (autocollectBuilder_ != null) {
          autocollectBuilder_.dispose();
          autocollectBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.Builder getAutocollectBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getAutocollectFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.AutocollectOrBuilder getAutocollectOrBuilder() {
        if (autocollectBuilder_ != null) {
          return autocollectBuilder_.getMessageOrBuilder();
        } else {
          return autocollect_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.getDefaultInstance() : autocollect_;
        }
      }
      /**
       * <pre>
       * Автосбор
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceTask.Autocollect autocollect = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.AutocollectOrBuilder> 
          getAutocollectFieldBuilder() {
        if (autocollectBuilder_ == null) {
          autocollectBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.Autocollect.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask.AutocollectOrBuilder>(
                  getAutocollect(),
                  getParentForChildren(),
                  isClean());
          autocollect_ = null;
        }
        return autocollectBuilder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 sl3_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder> sl3Builder_;
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       * @return Whether the sl3 field is set.
       */
      public boolean hasSl3() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       * @return The sl3.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 getSl3() {
        if (sl3Builder_ == null) {
          return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
        } else {
          return sl3Builder_.getMessage();
        }
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder setSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 value) {
        if (sl3Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sl3_ = value;
        } else {
          sl3Builder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder setSl3(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder builderForValue) {
        if (sl3Builder_ == null) {
          sl3_ = builderForValue.build();
        } else {
          sl3Builder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder mergeSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3 value) {
        if (sl3Builder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            sl3_ != null &&
            sl3_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance()) {
            getSl3Builder().mergeFrom(value);
          } else {
            sl3_ = value;
          }
        } else {
          sl3Builder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public Builder clearSl3() {
        bitField0_ = (bitField0_ & ~0x00002000);
        sl3_ = null;
        if (sl3Builder_ != null) {
          sl3Builder_.dispose();
          sl3Builder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder getSl3Builder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getSl3FieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder getSl3OrBuilder() {
        if (sl3Builder_ != null) {
          return sl3Builder_.getMessageOrBuilder();
        } else {
          return sl3_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.getDefaultInstance() : sl3_;
        }
      }
      /**
       * <pre>
       * Параметр sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceTask.Sl3 sl3 = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder> 
          getSl3FieldBuilder() {
        if (sl3Builder_ == null) {
          sl3Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceTask.Sl3OrBuilder>(
                  getSl3(),
                  getParentForChildren(),
                  isClean());
          sl3_ = null;
        }
        return sl3Builder_;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings emergencyCallSettings_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder> emergencyCallSettingsBuilder_;
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       * @return Whether the emergencyCallSettings field is set.
       */
      public boolean hasEmergencyCallSettings() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       * @return The emergencyCallSettings.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings getEmergencyCallSettings() {
        if (emergencyCallSettingsBuilder_ == null) {
          return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
        } else {
          return emergencyCallSettingsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder setEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings value) {
        if (emergencyCallSettingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          emergencyCallSettings_ = value;
        } else {
          emergencyCallSettingsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder setEmergencyCallSettings(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder builderForValue) {
        if (emergencyCallSettingsBuilder_ == null) {
          emergencyCallSettings_ = builderForValue.build();
        } else {
          emergencyCallSettingsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder mergeEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings value) {
        if (emergencyCallSettingsBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0) &&
            emergencyCallSettings_ != null &&
            emergencyCallSettings_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance()) {
            getEmergencyCallSettingsBuilder().mergeFrom(value);
          } else {
            emergencyCallSettings_ = value;
          }
        } else {
          emergencyCallSettingsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public Builder clearEmergencyCallSettings() {
        bitField0_ = (bitField0_ & ~0x00004000);
        emergencyCallSettings_ = null;
        if (emergencyCallSettingsBuilder_ != null) {
          emergencyCallSettingsBuilder_.dispose();
          emergencyCallSettingsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder getEmergencyCallSettingsBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getEmergencyCallSettingsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder getEmergencyCallSettingsOrBuilder() {
        if (emergencyCallSettingsBuilder_ != null) {
          return emergencyCallSettingsBuilder_.getMessageOrBuilder();
        } else {
          return emergencyCallSettings_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.getDefaultInstance() : emergencyCallSettings_;
        }
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.EmergencyCallSettings emergency_call_settings = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder> 
          getEmergencyCallSettingsFieldBuilder() {
        if (emergencyCallSettingsBuilder_ == null) {
          emergencyCallSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.EmergencyCallSettingsOrBuilder>(
                  getEmergencyCallSettings(),
                  getParentForChildren(),
                  isClean());
          emergencyCallSettings_ = null;
        }
        return emergencyCallSettingsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ControlDeviceTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.ControlDeviceTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ControlDeviceResultTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ControlDeviceResultTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the configuredAt field is set.
     */
    boolean hasConfiguredAt();
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The configuredAt.
     */
    com.google.protobuf.Timestamp getConfiguredAt();
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getConfiguredAtOrBuilder();

    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The hardwareVersion.
     */
    java.lang.String getHardwareVersion();
    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The bytes for hardwareVersion.
     */
    com.google.protobuf.ByteString
        getHardwareVersionBytes();

    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The firmwareVersion.
     */
    java.lang.String getFirmwareVersion();
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The bytes for firmwareVersion.
     */
    com.google.protobuf.ByteString
        getFirmwareVersionBytes();

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
     * @return Whether the settings field is set.
     */
    boolean hasSettings();
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
     * @return The settings.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings getSettings();
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.SettingsOrBuilder getSettingsOrBuilder();
  }
  /**
   * <pre>
   * Результат задачи на конфигурирование устройства.
   * Очередь key.device.control_device_result
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.ControlDeviceResultTask}
   */
  public static final class ControlDeviceResultTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.ControlDeviceResultTask)
      ControlDeviceResultTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ControlDeviceResultTask.newBuilder() to construct.
    private ControlDeviceResultTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ControlDeviceResultTask() {
      requestId_ = "";
      hardwareVersion_ = "";
      firmwareVersion_ = "";
      model_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Builder.class);
    }

    public interface SettingsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ControlDeviceResultTask.Settings)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Настройка распознавания лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
       * @return Whether the faceRecognition field is set.
       */
      boolean hasFaceRecognition();
      /**
       * <pre>
       * Настройка распознавания лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
       * @return The faceRecognition.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getFaceRecognition();
      /**
       * <pre>
       * Настройка распознавания лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getFaceRecognitionOrBuilder();

      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
       * @return Whether the preset field is set.
       */
      boolean hasPreset();
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
       * @return The preset.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getPreset();
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getPresetOrBuilder();

      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
       * @return Whether the sipAccount field is set.
       */
      boolean hasSipAccount();
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
       * @return The sipAccount.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSipAccount();
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSipAccountOrBuilder();

      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return Whether the gate field is set.
       */
      boolean hasGate();
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return The gate.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getGate();
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getGateOrBuilder();

      /**
       * <pre>
       * Настройка автосбора
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
       * @return Whether the autocollect field is set.
       */
      boolean hasAutocollect();
      /**
       * <pre>
       * Настройка автосбора
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
       * @return The autocollect.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getAutocollect();
      /**
       * <pre>
       * Настройка автосбора
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getAutocollectOrBuilder();

      /**
       * <pre>
       * Настройка консьержа
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
       * @return Whether the concierge field is set.
       */
      boolean hasConcierge();
      /**
       * <pre>
       * Настройка консьержа
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
       * @return The concierge.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getConcierge();
      /**
       * <pre>
       * Настройка консьержа
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getConciergeOrBuilder();

      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return Whether the sl3 field is set.
       */
      boolean hasSl3();
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return The sl3.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSl3();
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSl3OrBuilder();

      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return Whether the emergencyCallSettings field is set.
       */
      boolean hasEmergencyCallSettings();
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return The emergencyCallSettings.
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getEmergencyCallSettings();
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       */
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getEmergencyCallSettingsOrBuilder();
    }
    /**
     * <pre>
     * Результат конфигурации устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ControlDeviceResultTask.Settings}
     */
    public static final class Settings extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ControlDeviceResultTask.Settings)
        SettingsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Settings.newBuilder() to construct.
      private Settings(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Settings() {
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.Builder.class);
      }

      public static final int FACE_RECOGNITION_FIELD_NUMBER = 1;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State faceRecognition_;
      /**
       * <pre>
       * Настройка распознавания лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
       * @return Whether the faceRecognition field is set.
       */
      @java.lang.Override
      public boolean hasFaceRecognition() {
        return faceRecognition_ != null;
      }
      /**
       * <pre>
       * Настройка распознавания лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
       * @return The faceRecognition.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getFaceRecognition() {
        return faceRecognition_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : faceRecognition_;
      }
      /**
       * <pre>
       * Настройка распознавания лиц
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getFaceRecognitionOrBuilder() {
        return faceRecognition_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : faceRecognition_;
      }

      public static final int PRESET_FIELD_NUMBER = 2;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State preset_;
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
       * @return Whether the preset field is set.
       */
      @java.lang.Override
      public boolean hasPreset() {
        return preset_ != null;
      }
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
       * @return The preset.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getPreset() {
        return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
      }
      /**
       * <pre>
       * Установка пресета
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getPresetOrBuilder() {
        return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
      }

      public static final int SIP_ACCOUNT_FIELD_NUMBER = 3;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sipAccount_;
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
       * @return Whether the sipAccount field is set.
       */
      @java.lang.Override
      public boolean hasSipAccount() {
        return sipAccount_ != null;
      }
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
       * @return The sipAccount.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSipAccount() {
        return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
      }
      /**
       * <pre>
       * Настройка SIP-аккаунта
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSipAccountOrBuilder() {
        return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
      }

      public static final int GATE_FIELD_NUMBER = 4;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State gate_;
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return Whether the gate field is set.
       */
      @java.lang.Override
      public boolean hasGate() {
        return gate_ != null;
      }
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       * @return The gate.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getGate() {
        return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
      }
      /**
       * <pre>
       * Настройка калитки
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getGateOrBuilder() {
        return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
      }

      public static final int AUTOCOLLECT_FIELD_NUMBER = 5;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State autocollect_;
      /**
       * <pre>
       * Настройка автосбора
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
       * @return Whether the autocollect field is set.
       */
      @java.lang.Override
      public boolean hasAutocollect() {
        return autocollect_ != null;
      }
      /**
       * <pre>
       * Настройка автосбора
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
       * @return The autocollect.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getAutocollect() {
        return autocollect_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : autocollect_;
      }
      /**
       * <pre>
       * Настройка автосбора
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getAutocollectOrBuilder() {
        return autocollect_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : autocollect_;
      }

      public static final int CONCIERGE_FIELD_NUMBER = 6;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State concierge_;
      /**
       * <pre>
       * Настройка консьержа
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
       * @return Whether the concierge field is set.
       */
      @java.lang.Override
      public boolean hasConcierge() {
        return concierge_ != null;
      }
      /**
       * <pre>
       * Настройка консьержа
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
       * @return The concierge.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getConcierge() {
        return concierge_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : concierge_;
      }
      /**
       * <pre>
       * Настройка консьержа
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getConciergeOrBuilder() {
        return concierge_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : concierge_;
      }

      public static final int SL3_FIELD_NUMBER = 7;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sl3_;
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return Whether the sl3 field is set.
       */
      @java.lang.Override
      public boolean hasSl3() {
        return sl3_ != null;
      }
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       * @return The sl3.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSl3() {
        return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
      }
      /**
       * <pre>
       * Настройка sl3
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSl3OrBuilder() {
        return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
      }

      public static final int EMERGENCY_CALL_SETTINGS_FIELD_NUMBER = 8;
      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State emergencyCallSettings_;
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return Whether the emergencyCallSettings field is set.
       */
      @java.lang.Override
      public boolean hasEmergencyCallSettings() {
        return emergencyCallSettings_ != null;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       * @return The emergencyCallSettings.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getEmergencyCallSettings() {
        return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
      }
      /**
       * <pre>
       * Настройки вызова экстренной службы
       * </pre>
       *
       * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getEmergencyCallSettingsOrBuilder() {
        return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (faceRecognition_ != null) {
          output.writeMessage(1, getFaceRecognition());
        }
        if (preset_ != null) {
          output.writeMessage(2, getPreset());
        }
        if (sipAccount_ != null) {
          output.writeMessage(3, getSipAccount());
        }
        if (gate_ != null) {
          output.writeMessage(4, getGate());
        }
        if (autocollect_ != null) {
          output.writeMessage(5, getAutocollect());
        }
        if (concierge_ != null) {
          output.writeMessage(6, getConcierge());
        }
        if (sl3_ != null) {
          output.writeMessage(7, getSl3());
        }
        if (emergencyCallSettings_ != null) {
          output.writeMessage(8, getEmergencyCallSettings());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (faceRecognition_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getFaceRecognition());
        }
        if (preset_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getPreset());
        }
        if (sipAccount_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getSipAccount());
        }
        if (gate_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getGate());
        }
        if (autocollect_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getAutocollect());
        }
        if (concierge_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getConcierge());
        }
        if (sl3_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, getSl3());
        }
        if (emergencyCallSettings_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, getEmergencyCallSettings());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (hasFaceRecognition() != other.hasFaceRecognition()) return false;
        if (hasFaceRecognition()) {
          if (!getFaceRecognition()
              .equals(other.getFaceRecognition())) return false;
        }
        if (hasPreset() != other.hasPreset()) return false;
        if (hasPreset()) {
          if (!getPreset()
              .equals(other.getPreset())) return false;
        }
        if (hasSipAccount() != other.hasSipAccount()) return false;
        if (hasSipAccount()) {
          if (!getSipAccount()
              .equals(other.getSipAccount())) return false;
        }
        if (hasGate() != other.hasGate()) return false;
        if (hasGate()) {
          if (!getGate()
              .equals(other.getGate())) return false;
        }
        if (hasAutocollect() != other.hasAutocollect()) return false;
        if (hasAutocollect()) {
          if (!getAutocollect()
              .equals(other.getAutocollect())) return false;
        }
        if (hasConcierge() != other.hasConcierge()) return false;
        if (hasConcierge()) {
          if (!getConcierge()
              .equals(other.getConcierge())) return false;
        }
        if (hasSl3() != other.hasSl3()) return false;
        if (hasSl3()) {
          if (!getSl3()
              .equals(other.getSl3())) return false;
        }
        if (hasEmergencyCallSettings() != other.hasEmergencyCallSettings()) return false;
        if (hasEmergencyCallSettings()) {
          if (!getEmergencyCallSettings()
              .equals(other.getEmergencyCallSettings())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasFaceRecognition()) {
          hash = (37 * hash) + FACE_RECOGNITION_FIELD_NUMBER;
          hash = (53 * hash) + getFaceRecognition().hashCode();
        }
        if (hasPreset()) {
          hash = (37 * hash) + PRESET_FIELD_NUMBER;
          hash = (53 * hash) + getPreset().hashCode();
        }
        if (hasSipAccount()) {
          hash = (37 * hash) + SIP_ACCOUNT_FIELD_NUMBER;
          hash = (53 * hash) + getSipAccount().hashCode();
        }
        if (hasGate()) {
          hash = (37 * hash) + GATE_FIELD_NUMBER;
          hash = (53 * hash) + getGate().hashCode();
        }
        if (hasAutocollect()) {
          hash = (37 * hash) + AUTOCOLLECT_FIELD_NUMBER;
          hash = (53 * hash) + getAutocollect().hashCode();
        }
        if (hasConcierge()) {
          hash = (37 * hash) + CONCIERGE_FIELD_NUMBER;
          hash = (53 * hash) + getConcierge().hashCode();
        }
        if (hasSl3()) {
          hash = (37 * hash) + SL3_FIELD_NUMBER;
          hash = (53 * hash) + getSl3().hashCode();
        }
        if (hasEmergencyCallSettings()) {
          hash = (37 * hash) + EMERGENCY_CALL_SETTINGS_FIELD_NUMBER;
          hash = (53 * hash) + getEmergencyCallSettings().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Результат конфигурации устройства
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ControlDeviceResultTask.Settings}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ControlDeviceResultTask.Settings)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.SettingsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          faceRecognition_ = null;
          if (faceRecognitionBuilder_ != null) {
            faceRecognitionBuilder_.dispose();
            faceRecognitionBuilder_ = null;
          }
          preset_ = null;
          if (presetBuilder_ != null) {
            presetBuilder_.dispose();
            presetBuilder_ = null;
          }
          sipAccount_ = null;
          if (sipAccountBuilder_ != null) {
            sipAccountBuilder_.dispose();
            sipAccountBuilder_ = null;
          }
          gate_ = null;
          if (gateBuilder_ != null) {
            gateBuilder_.dispose();
            gateBuilder_ = null;
          }
          autocollect_ = null;
          if (autocollectBuilder_ != null) {
            autocollectBuilder_.dispose();
            autocollectBuilder_ = null;
          }
          concierge_ = null;
          if (conciergeBuilder_ != null) {
            conciergeBuilder_.dispose();
            conciergeBuilder_ = null;
          }
          sl3_ = null;
          if (sl3Builder_ != null) {
            sl3Builder_.dispose();
            sl3Builder_ = null;
          }
          emergencyCallSettings_ = null;
          if (emergencyCallSettingsBuilder_ != null) {
            emergencyCallSettingsBuilder_.dispose();
            emergencyCallSettingsBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.faceRecognition_ = faceRecognitionBuilder_ == null
                ? faceRecognition_
                : faceRecognitionBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.preset_ = presetBuilder_ == null
                ? preset_
                : presetBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.sipAccount_ = sipAccountBuilder_ == null
                ? sipAccount_
                : sipAccountBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.gate_ = gateBuilder_ == null
                ? gate_
                : gateBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.autocollect_ = autocollectBuilder_ == null
                ? autocollect_
                : autocollectBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            result.concierge_ = conciergeBuilder_ == null
                ? concierge_
                : conciergeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) != 0)) {
            result.sl3_ = sl3Builder_ == null
                ? sl3_
                : sl3Builder_.build();
          }
          if (((from_bitField0_ & 0x00000080) != 0)) {
            result.emergencyCallSettings_ = emergencyCallSettingsBuilder_ == null
                ? emergencyCallSettings_
                : emergencyCallSettingsBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.getDefaultInstance()) return this;
          if (other.hasFaceRecognition()) {
            mergeFaceRecognition(other.getFaceRecognition());
          }
          if (other.hasPreset()) {
            mergePreset(other.getPreset());
          }
          if (other.hasSipAccount()) {
            mergeSipAccount(other.getSipAccount());
          }
          if (other.hasGate()) {
            mergeGate(other.getGate());
          }
          if (other.hasAutocollect()) {
            mergeAutocollect(other.getAutocollect());
          }
          if (other.hasConcierge()) {
            mergeConcierge(other.getConcierge());
          }
          if (other.hasSl3()) {
            mergeSl3(other.getSl3());
          }
          if (other.hasEmergencyCallSettings()) {
            mergeEmergencyCallSettings(other.getEmergencyCallSettings());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getFaceRecognitionFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getPresetFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getSipAccountFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000004;
                  break;
                } // case 26
                case 34: {
                  input.readMessage(
                      getGateFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000008;
                  break;
                } // case 34
                case 42: {
                  input.readMessage(
                      getAutocollectFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000010;
                  break;
                } // case 42
                case 50: {
                  input.readMessage(
                      getConciergeFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000020;
                  break;
                } // case 50
                case 58: {
                  input.readMessage(
                      getSl3FieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000040;
                  break;
                } // case 58
                case 66: {
                  input.readMessage(
                      getEmergencyCallSettingsFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000080;
                  break;
                } // case 66
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State faceRecognition_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> faceRecognitionBuilder_;
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         * @return Whether the faceRecognition field is set.
         */
        public boolean hasFaceRecognition() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         * @return The faceRecognition.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getFaceRecognition() {
          if (faceRecognitionBuilder_ == null) {
            return faceRecognition_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : faceRecognition_;
          } else {
            return faceRecognitionBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         */
        public Builder setFaceRecognition(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (faceRecognitionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            faceRecognition_ = value;
          } else {
            faceRecognitionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         */
        public Builder setFaceRecognition(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (faceRecognitionBuilder_ == null) {
            faceRecognition_ = builderForValue.build();
          } else {
            faceRecognitionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         */
        public Builder mergeFaceRecognition(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (faceRecognitionBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
              faceRecognition_ != null &&
              faceRecognition_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getFaceRecognitionBuilder().mergeFrom(value);
            } else {
              faceRecognition_ = value;
            }
          } else {
            faceRecognitionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         */
        public Builder clearFaceRecognition() {
          bitField0_ = (bitField0_ & ~0x00000001);
          faceRecognition_ = null;
          if (faceRecognitionBuilder_ != null) {
            faceRecognitionBuilder_.dispose();
            faceRecognitionBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getFaceRecognitionBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getFaceRecognitionFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getFaceRecognitionOrBuilder() {
          if (faceRecognitionBuilder_ != null) {
            return faceRecognitionBuilder_.getMessageOrBuilder();
          } else {
            return faceRecognition_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : faceRecognition_;
          }
        }
        /**
         * <pre>
         * Настройка распознавания лиц
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State face_recognition = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getFaceRecognitionFieldBuilder() {
          if (faceRecognitionBuilder_ == null) {
            faceRecognitionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getFaceRecognition(),
                    getParentForChildren(),
                    isClean());
            faceRecognition_ = null;
          }
          return faceRecognitionBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State preset_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> presetBuilder_;
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         * @return Whether the preset field is set.
         */
        public boolean hasPreset() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         * @return The preset.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getPreset() {
          if (presetBuilder_ == null) {
            return preset_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
          } else {
            return presetBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         */
        public Builder setPreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (presetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            preset_ = value;
          } else {
            presetBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         */
        public Builder setPreset(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (presetBuilder_ == null) {
            preset_ = builderForValue.build();
          } else {
            presetBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         */
        public Builder mergePreset(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (presetBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
              preset_ != null &&
              preset_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getPresetBuilder().mergeFrom(value);
            } else {
              preset_ = value;
            }
          } else {
            presetBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         */
        public Builder clearPreset() {
          bitField0_ = (bitField0_ & ~0x00000002);
          preset_ = null;
          if (presetBuilder_ != null) {
            presetBuilder_.dispose();
            presetBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getPresetBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getPresetFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getPresetOrBuilder() {
          if (presetBuilder_ != null) {
            return presetBuilder_.getMessageOrBuilder();
          } else {
            return preset_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : preset_;
          }
        }
        /**
         * <pre>
         * Установка пресета
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State preset = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getPresetFieldBuilder() {
          if (presetBuilder_ == null) {
            presetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getPreset(),
                    getParentForChildren(),
                    isClean());
            preset_ = null;
          }
          return presetBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sipAccount_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> sipAccountBuilder_;
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         * @return Whether the sipAccount field is set.
         */
        public boolean hasSipAccount() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         * @return The sipAccount.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSipAccount() {
          if (sipAccountBuilder_ == null) {
            return sipAccount_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
          } else {
            return sipAccountBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         */
        public Builder setSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sipAccountBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            sipAccount_ = value;
          } else {
            sipAccountBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         */
        public Builder setSipAccount(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (sipAccountBuilder_ == null) {
            sipAccount_ = builderForValue.build();
          } else {
            sipAccountBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         */
        public Builder mergeSipAccount(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sipAccountBuilder_ == null) {
            if (((bitField0_ & 0x00000004) != 0) &&
              sipAccount_ != null &&
              sipAccount_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getSipAccountBuilder().mergeFrom(value);
            } else {
              sipAccount_ = value;
            }
          } else {
            sipAccountBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         */
        public Builder clearSipAccount() {
          bitField0_ = (bitField0_ & ~0x00000004);
          sipAccount_ = null;
          if (sipAccountBuilder_ != null) {
            sipAccountBuilder_.dispose();
            sipAccountBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getSipAccountBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getSipAccountFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSipAccountOrBuilder() {
          if (sipAccountBuilder_ != null) {
            return sipAccountBuilder_.getMessageOrBuilder();
          } else {
            return sipAccount_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sipAccount_;
          }
        }
        /**
         * <pre>
         * Настройка SIP-аккаунта
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sip_account = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getSipAccountFieldBuilder() {
          if (sipAccountBuilder_ == null) {
            sipAccountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getSipAccount(),
                    getParentForChildren(),
                    isClean());
            sipAccount_ = null;
          }
          return sipAccountBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State gate_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> gateBuilder_;
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         * @return Whether the gate field is set.
         */
        public boolean hasGate() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         * @return The gate.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getGate() {
          if (gateBuilder_ == null) {
            return gate_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
          } else {
            return gateBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder setGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (gateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            gate_ = value;
          } else {
            gateBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder setGate(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (gateBuilder_ == null) {
            gate_ = builderForValue.build();
          } else {
            gateBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder mergeGate(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (gateBuilder_ == null) {
            if (((bitField0_ & 0x00000008) != 0) &&
              gate_ != null &&
              gate_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getGateBuilder().mergeFrom(value);
            } else {
              gate_ = value;
            }
          } else {
            gateBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public Builder clearGate() {
          bitField0_ = (bitField0_ & ~0x00000008);
          gate_ = null;
          if (gateBuilder_ != null) {
            gateBuilder_.dispose();
            gateBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getGateBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getGateFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getGateOrBuilder() {
          if (gateBuilder_ != null) {
            return gateBuilder_.getMessageOrBuilder();
          } else {
            return gate_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : gate_;
          }
        }
        /**
         * <pre>
         * Настройка калитки
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State gate = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getGateFieldBuilder() {
          if (gateBuilder_ == null) {
            gateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getGate(),
                    getParentForChildren(),
                    isClean());
            gate_ = null;
          }
          return gateBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State autocollect_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> autocollectBuilder_;
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         * @return Whether the autocollect field is set.
         */
        public boolean hasAutocollect() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         * @return The autocollect.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getAutocollect() {
          if (autocollectBuilder_ == null) {
            return autocollect_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : autocollect_;
          } else {
            return autocollectBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         */
        public Builder setAutocollect(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (autocollectBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            autocollect_ = value;
          } else {
            autocollectBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         */
        public Builder setAutocollect(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (autocollectBuilder_ == null) {
            autocollect_ = builderForValue.build();
          } else {
            autocollectBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         */
        public Builder mergeAutocollect(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (autocollectBuilder_ == null) {
            if (((bitField0_ & 0x00000010) != 0) &&
              autocollect_ != null &&
              autocollect_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getAutocollectBuilder().mergeFrom(value);
            } else {
              autocollect_ = value;
            }
          } else {
            autocollectBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         */
        public Builder clearAutocollect() {
          bitField0_ = (bitField0_ & ~0x00000010);
          autocollect_ = null;
          if (autocollectBuilder_ != null) {
            autocollectBuilder_.dispose();
            autocollectBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getAutocollectBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getAutocollectFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getAutocollectOrBuilder() {
          if (autocollectBuilder_ != null) {
            return autocollectBuilder_.getMessageOrBuilder();
          } else {
            return autocollect_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : autocollect_;
          }
        }
        /**
         * <pre>
         * Настройка автосбора
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State autocollect = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getAutocollectFieldBuilder() {
          if (autocollectBuilder_ == null) {
            autocollectBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getAutocollect(),
                    getParentForChildren(),
                    isClean());
            autocollect_ = null;
          }
          return autocollectBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State concierge_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> conciergeBuilder_;
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         * @return Whether the concierge field is set.
         */
        public boolean hasConcierge() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         * @return The concierge.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getConcierge() {
          if (conciergeBuilder_ == null) {
            return concierge_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : concierge_;
          } else {
            return conciergeBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         */
        public Builder setConcierge(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (conciergeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            concierge_ = value;
          } else {
            conciergeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         */
        public Builder setConcierge(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (conciergeBuilder_ == null) {
            concierge_ = builderForValue.build();
          } else {
            conciergeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         */
        public Builder mergeConcierge(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (conciergeBuilder_ == null) {
            if (((bitField0_ & 0x00000020) != 0) &&
              concierge_ != null &&
              concierge_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getConciergeBuilder().mergeFrom(value);
            } else {
              concierge_ = value;
            }
          } else {
            conciergeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         */
        public Builder clearConcierge() {
          bitField0_ = (bitField0_ & ~0x00000020);
          concierge_ = null;
          if (conciergeBuilder_ != null) {
            conciergeBuilder_.dispose();
            conciergeBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getConciergeBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getConciergeFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getConciergeOrBuilder() {
          if (conciergeBuilder_ != null) {
            return conciergeBuilder_.getMessageOrBuilder();
          } else {
            return concierge_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : concierge_;
          }
        }
        /**
         * <pre>
         * Настройка консьержа
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State concierge = 6;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getConciergeFieldBuilder() {
          if (conciergeBuilder_ == null) {
            conciergeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getConcierge(),
                    getParentForChildren(),
                    isClean());
            concierge_ = null;
          }
          return conciergeBuilder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State sl3_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> sl3Builder_;
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         * @return Whether the sl3 field is set.
         */
        public boolean hasSl3() {
          return ((bitField0_ & 0x00000040) != 0);
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         * @return The sl3.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getSl3() {
          if (sl3Builder_ == null) {
            return sl3_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
          } else {
            return sl3Builder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder setSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sl3Builder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            sl3_ = value;
          } else {
            sl3Builder_.setMessage(value);
          }
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder setSl3(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (sl3Builder_ == null) {
            sl3_ = builderForValue.build();
          } else {
            sl3Builder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder mergeSl3(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (sl3Builder_ == null) {
            if (((bitField0_ & 0x00000040) != 0) &&
              sl3_ != null &&
              sl3_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getSl3Builder().mergeFrom(value);
            } else {
              sl3_ = value;
            }
          } else {
            sl3Builder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public Builder clearSl3() {
          bitField0_ = (bitField0_ & ~0x00000040);
          sl3_ = null;
          if (sl3Builder_ != null) {
            sl3Builder_.dispose();
            sl3Builder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getSl3Builder() {
          bitField0_ |= 0x00000040;
          onChanged();
          return getSl3FieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getSl3OrBuilder() {
          if (sl3Builder_ != null) {
            return sl3Builder_.getMessageOrBuilder();
          } else {
            return sl3_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : sl3_;
          }
        }
        /**
         * <pre>
         * Настройка sl3
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State sl3 = 7;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getSl3FieldBuilder() {
          if (sl3Builder_ == null) {
            sl3Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getSl3(),
                    getParentForChildren(),
                    isClean());
            sl3_ = null;
          }
          return sl3Builder_;
        }

        private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State emergencyCallSettings_;
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> emergencyCallSettingsBuilder_;
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         * @return Whether the emergencyCallSettings field is set.
         */
        public boolean hasEmergencyCallSettings() {
          return ((bitField0_ & 0x00000080) != 0);
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         * @return The emergencyCallSettings.
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State getEmergencyCallSettings() {
          if (emergencyCallSettingsBuilder_ == null) {
            return emergencyCallSettings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
          } else {
            return emergencyCallSettingsBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder setEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (emergencyCallSettingsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            emergencyCallSettings_ = value;
          } else {
            emergencyCallSettingsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000080;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder setEmergencyCallSettings(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder builderForValue) {
          if (emergencyCallSettingsBuilder_ == null) {
            emergencyCallSettings_ = builderForValue.build();
          } else {
            emergencyCallSettingsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000080;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder mergeEmergencyCallSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State value) {
          if (emergencyCallSettingsBuilder_ == null) {
            if (((bitField0_ & 0x00000080) != 0) &&
              emergencyCallSettings_ != null &&
              emergencyCallSettings_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance()) {
              getEmergencyCallSettingsBuilder().mergeFrom(value);
            } else {
              emergencyCallSettings_ = value;
            }
          } else {
            emergencyCallSettingsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000080;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public Builder clearEmergencyCallSettings() {
          bitField0_ = (bitField0_ & ~0x00000080);
          emergencyCallSettings_ = null;
          if (emergencyCallSettingsBuilder_ != null) {
            emergencyCallSettingsBuilder_.dispose();
            emergencyCallSettingsBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder getEmergencyCallSettingsBuilder() {
          bitField0_ |= 0x00000080;
          onChanged();
          return getEmergencyCallSettingsFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder getEmergencyCallSettingsOrBuilder() {
          if (emergencyCallSettingsBuilder_ != null) {
            return emergencyCallSettingsBuilder_.getMessageOrBuilder();
          } else {
            return emergencyCallSettings_ == null ?
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.getDefaultInstance() : emergencyCallSettings_;
          }
        }
        /**
         * <pre>
         * Настройки вызова экстренной службы
         * </pre>
         *
         * <code>.keyapis.device.v1.ConfigureDeviceResultTask.Settings.State emergency_call_settings = 8;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder> 
            getEmergencyCallSettingsFieldBuilder() {
          if (emergencyCallSettingsBuilder_ == null) {
            emergencyCallSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.State.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ConfigureDeviceResultTask.Settings.StateOrBuilder>(
                    getEmergencyCallSettings(),
                    getParentForChildren(),
                    isClean());
            emergencyCallSettings_ = null;
          }
          return emergencyCallSettingsBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ControlDeviceResultTask.Settings)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ControlDeviceResultTask.Settings)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CONFIGURED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp configuredAt_;
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the configuredAt field is set.
     */
    @java.lang.Override
    public boolean hasConfiguredAt() {
      return configuredAt_ != null;
    }
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The configuredAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getConfiguredAt() {
      return configuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
    }
    /**
     * <pre>
     * Дата конфигурации устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getConfiguredAtOrBuilder() {
      return configuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
    }

    public static final int HARDWARE_VERSION_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object hardwareVersion_ = "";
    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The hardwareVersion.
     */
    @java.lang.Override
    public java.lang.String getHardwareVersion() {
      java.lang.Object ref = hardwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        hardwareVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Аппаратная версия
     * </pre>
     *
     * <code>string hardware_version = 4;</code>
     * @return The bytes for hardwareVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHardwareVersionBytes() {
      java.lang.Object ref = hardwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hardwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FIRMWARE_VERSION_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object firmwareVersion_ = "";
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The firmwareVersion.
     */
    @java.lang.Override
    public java.lang.String getFirmwareVersion() {
      java.lang.Object ref = firmwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        firmwareVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string firmware_version = 5;</code>
     * @return The bytes for firmwareVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFirmwareVersionBytes() {
      java.lang.Object ref = firmwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        firmwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SETTINGS_FIELD_NUMBER = 7;
    private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings settings_;
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
     * @return Whether the settings field is set.
     */
    @java.lang.Override
    public boolean hasSettings() {
      return settings_ != null;
    }
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
     * @return The settings.
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings getSettings() {
      return settings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.getDefaultInstance() : settings_;
    }
    /**
     * <pre>
     * Результат настроек
     * </pre>
     *
     * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.SettingsOrBuilder getSettingsOrBuilder() {
      return settings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.getDefaultInstance() : settings_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      if (configuredAt_ != null) {
        output.writeMessage(3, getConfiguredAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hardwareVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, hardwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(firmwareVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, firmwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, model_);
      }
      if (settings_ != null) {
        output.writeMessage(7, getSettings());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      if (configuredAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getConfiguredAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hardwareVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, hardwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(firmwareVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, firmwareVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, model_);
      }
      if (settings_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getSettings());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (hasConfiguredAt() != other.hasConfiguredAt()) return false;
      if (hasConfiguredAt()) {
        if (!getConfiguredAt()
            .equals(other.getConfiguredAt())) return false;
      }
      if (!getHardwareVersion()
          .equals(other.getHardwareVersion())) return false;
      if (!getFirmwareVersion()
          .equals(other.getFirmwareVersion())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (hasSettings() != other.hasSettings()) return false;
      if (hasSettings()) {
        if (!getSettings()
            .equals(other.getSettings())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (hasConfiguredAt()) {
        hash = (37 * hash) + CONFIGURED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getConfiguredAt().hashCode();
      }
      hash = (37 * hash) + HARDWARE_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getHardwareVersion().hashCode();
      hash = (37 * hash) + FIRMWARE_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getFirmwareVersion().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      if (hasSettings()) {
        hash = (37 * hash) + SETTINGS_FIELD_NUMBER;
        hash = (53 * hash) + getSettings().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Результат задачи на конфигурирование устройства.
     * Очередь key.device.control_device_result
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ControlDeviceResultTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ControlDeviceResultTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        configuredAt_ = null;
        if (configuredAtBuilder_ != null) {
          configuredAtBuilder_.dispose();
          configuredAtBuilder_ = null;
        }
        hardwareVersion_ = "";
        firmwareVersion_ = "";
        model_ = "";
        settings_ = null;
        if (settingsBuilder_ != null) {
          settingsBuilder_.dispose();
          settingsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ControlDeviceResultTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.configuredAt_ = configuredAtBuilder_ == null
              ? configuredAt_
              : configuredAtBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.hardwareVersion_ = hardwareVersion_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.firmwareVersion_ = firmwareVersion_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.settings_ = settingsBuilder_ == null
              ? settings_
              : settingsBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (other.hasConfiguredAt()) {
          mergeConfiguredAt(other.getConfiguredAt());
        }
        if (!other.getHardwareVersion().isEmpty()) {
          hardwareVersion_ = other.hardwareVersion_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getFirmwareVersion().isEmpty()) {
          firmwareVersion_ = other.firmwareVersion_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasSettings()) {
          mergeSettings(other.getSettings());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getConfiguredAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                hardwareVersion_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                firmwareVersion_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getSettingsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp configuredAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> configuredAtBuilder_;
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the configuredAt field is set.
       */
      public boolean hasConfiguredAt() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The configuredAt.
       */
      public com.google.protobuf.Timestamp getConfiguredAt() {
        if (configuredAtBuilder_ == null) {
          return configuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
        } else {
          return configuredAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setConfiguredAt(com.google.protobuf.Timestamp value) {
        if (configuredAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configuredAt_ = value;
        } else {
          configuredAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setConfiguredAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (configuredAtBuilder_ == null) {
          configuredAt_ = builderForValue.build();
        } else {
          configuredAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeConfiguredAt(com.google.protobuf.Timestamp value) {
        if (configuredAtBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            configuredAt_ != null &&
            configuredAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getConfiguredAtBuilder().mergeFrom(value);
          } else {
            configuredAt_ = value;
          }
        } else {
          configuredAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearConfiguredAt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        configuredAt_ = null;
        if (configuredAtBuilder_ != null) {
          configuredAtBuilder_.dispose();
          configuredAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getConfiguredAtBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getConfiguredAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getConfiguredAtOrBuilder() {
        if (configuredAtBuilder_ != null) {
          return configuredAtBuilder_.getMessageOrBuilder();
        } else {
          return configuredAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : configuredAt_;
        }
      }
      /**
       * <pre>
       * Дата конфигурации устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp configured_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getConfiguredAtFieldBuilder() {
        if (configuredAtBuilder_ == null) {
          configuredAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getConfiguredAt(),
                  getParentForChildren(),
                  isClean());
          configuredAt_ = null;
        }
        return configuredAtBuilder_;
      }

      private java.lang.Object hardwareVersion_ = "";
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @return The hardwareVersion.
       */
      public java.lang.String getHardwareVersion() {
        java.lang.Object ref = hardwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hardwareVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @return The bytes for hardwareVersion.
       */
      public com.google.protobuf.ByteString
          getHardwareVersionBytes() {
        java.lang.Object ref = hardwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hardwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @param value The hardwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHardwareVersion(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        hardwareVersion_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHardwareVersion() {
        hardwareVersion_ = getDefaultInstance().getHardwareVersion();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Аппаратная версия
       * </pre>
       *
       * <code>string hardware_version = 4;</code>
       * @param value The bytes for hardwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHardwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        hardwareVersion_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object firmwareVersion_ = "";
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @return The firmwareVersion.
       */
      public java.lang.String getFirmwareVersion() {
        java.lang.Object ref = firmwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          firmwareVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @return The bytes for firmwareVersion.
       */
      public com.google.protobuf.ByteString
          getFirmwareVersionBytes() {
        java.lang.Object ref = firmwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          firmwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @param value The firmwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setFirmwareVersion(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        firmwareVersion_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearFirmwareVersion() {
        firmwareVersion_ = getDefaultInstance().getFirmwareVersion();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string firmware_version = 5;</code>
       * @param value The bytes for firmwareVersion to set.
       * @return This builder for chaining.
       */
      public Builder setFirmwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        firmwareVersion_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings settings_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.SettingsOrBuilder> settingsBuilder_;
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       * @return Whether the settings field is set.
       */
      public boolean hasSettings() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       * @return The settings.
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings getSettings() {
        if (settingsBuilder_ == null) {
          return settings_ == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.getDefaultInstance() : settings_;
        } else {
          return settingsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder setSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          settings_ = value;
        } else {
          settingsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder setSettings(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          settings_ = builderForValue.build();
        } else {
          settingsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder mergeSettings(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings value) {
        if (settingsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            settings_ != null &&
            settings_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.getDefaultInstance()) {
            getSettingsBuilder().mergeFrom(value);
          } else {
            settings_ = value;
          }
        } else {
          settingsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       */
      public Builder clearSettings() {
        bitField0_ = (bitField0_ & ~0x00000040);
        settings_ = null;
        if (settingsBuilder_ != null) {
          settingsBuilder_.dispose();
          settingsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.Builder getSettingsBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getSettingsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.SettingsOrBuilder getSettingsOrBuilder() {
        if (settingsBuilder_ != null) {
          return settingsBuilder_.getMessageOrBuilder();
        } else {
          return settings_ == null ?
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.getDefaultInstance() : settings_;
        }
      }
      /**
       * <pre>
       * Результат настроек
       * </pre>
       *
       * <code>.keyapis.device.v1.ControlDeviceResultTask.Settings settings = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.SettingsOrBuilder> 
          getSettingsFieldBuilder() {
        if (settingsBuilder_ == null) {
          settingsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.Settings.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask.SettingsOrBuilder>(
                  getSettings(),
                  getParentForChildren(),
                  isClean());
          settings_ = null;
        }
        return settingsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ControlDeviceResultTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.ControlDeviceResultTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ControlDeviceResultTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BlockCmsPhonesTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.BlockCmsPhonesTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone> 
        getCmsPhonesList();
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone getCmsPhones(int index);
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    int getCmsPhonesCount();
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder> 
        getCmsPhonesOrBuilderList();
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder getCmsPhonesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача на блокировку аналоговых трубок на устройствах для квартир.
   * Очередь key.device.cms_phones_block
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.BlockCmsPhonesTask}
   */
  public static final class BlockCmsPhonesTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.BlockCmsPhonesTask)
      BlockCmsPhonesTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BlockCmsPhonesTask.newBuilder() to construct.
    private BlockCmsPhonesTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BlockCmsPhonesTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      cmsPhones_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.Builder.class);
    }

    public interface CmsPhoneOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.BlockCmsPhonesTask.CmsPhone)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      int getId();

      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      java.lang.String getRoomNumber();
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      com.google.protobuf.ByteString
          getRoomNumberBytes();
    }
    /**
     * <pre>
     * Аналоговая трубка
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.BlockCmsPhonesTask.CmsPhone}
     */
    public static final class CmsPhone extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.BlockCmsPhonesTask.CmsPhone)
        CmsPhoneOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use CmsPhone.newBuilder() to construct.
      private CmsPhone(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private CmsPhone() {
        roomNumber_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      private int id_ = 0;
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }

      public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      @java.lang.Override
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

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

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

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

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Аналоговая трубка
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.BlockCmsPhonesTask.CmsPhone}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.BlockCmsPhonesTask.CmsPhone)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.newBuilder()
        private Builder() {

        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.id_ = id_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.roomNumber_ = roomNumber_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.getDefaultInstance()) return this;
          if (other.getId() != 0) {
            setId(other.getId());
          }
          if (!other.getRoomNumber().isEmpty()) {
            roomNumber_ = other.roomNumber_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private int id_ ;
        /**
         * <pre>
         * Идентификатор аналоговой трубки
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return id_;
        }
        /**
         * <pre>
         * Идентификатор аналоговой трубки
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {

          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Идентификатор аналоговой трубки
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object roomNumber_ = "";
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The roomNumber.
         */
        public java.lang.String getRoomNumber() {
          java.lang.Object ref = roomNumber_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            roomNumber_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for roomNumber.
         */
        public com.google.protobuf.ByteString
            getRoomNumberBytes() {
          java.lang.Object ref = roomNumber_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            roomNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearRoomNumber() {
          roomNumber_ = getDefaultInstance().getRoomNumber();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.BlockCmsPhonesTask.CmsPhone)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.BlockCmsPhonesTask.CmsPhone)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CMS_PHONES_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone> cmsPhones_;
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone> getCmsPhonesList() {
      return cmsPhones_;
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder> 
        getCmsPhonesOrBuilderList() {
      return cmsPhones_;
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public int getCmsPhonesCount() {
      return cmsPhones_.size();
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone getCmsPhones(int index) {
      return cmsPhones_.get(index);
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder getCmsPhonesOrBuilder(
        int index) {
      return cmsPhones_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      for (int i = 0; i < cmsPhones_.size(); i++) {
        output.writeMessage(6, cmsPhones_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      for (int i = 0; i < cmsPhones_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, cmsPhones_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (!getCmsPhonesList()
          .equals(other.getCmsPhonesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      if (getCmsPhonesCount() > 0) {
        hash = (37 * hash) + CMS_PHONES_FIELD_NUMBER;
        hash = (53 * hash) + getCmsPhonesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на блокировку аналоговых трубок на устройствах для квартир.
     * Очередь key.device.cms_phones_block
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.BlockCmsPhonesTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.BlockCmsPhonesTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        if (cmsPhonesBuilder_ == null) {
          cmsPhones_ = java.util.Collections.emptyList();
        } else {
          cmsPhones_ = null;
          cmsPhonesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhonesTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask result) {
        if (cmsPhonesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            cmsPhones_ = java.util.Collections.unmodifiableList(cmsPhones_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.cmsPhones_ = cmsPhones_;
        } else {
          result.cmsPhones_ = cmsPhonesBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (cmsPhonesBuilder_ == null) {
          if (!other.cmsPhones_.isEmpty()) {
            if (cmsPhones_.isEmpty()) {
              cmsPhones_ = other.cmsPhones_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureCmsPhonesIsMutable();
              cmsPhones_.addAll(other.cmsPhones_);
            }
            onChanged();
          }
        } else {
          if (!other.cmsPhones_.isEmpty()) {
            if (cmsPhonesBuilder_.isEmpty()) {
              cmsPhonesBuilder_.dispose();
              cmsPhonesBuilder_ = null;
              cmsPhones_ = other.cmsPhones_;
              bitField0_ = (bitField0_ & ~0x00000020);
              cmsPhonesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCmsPhonesFieldBuilder() : null;
            } else {
              cmsPhonesBuilder_.addAllMessages(other.cmsPhones_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.parser(),
                        extensionRegistry);
                if (cmsPhonesBuilder_ == null) {
                  ensureCmsPhonesIsMutable();
                  cmsPhones_.add(m);
                } else {
                  cmsPhonesBuilder_.addMessage(m);
                }
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone> cmsPhones_ =
        java.util.Collections.emptyList();
      private void ensureCmsPhonesIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          cmsPhones_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone>(cmsPhones_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder> cmsPhonesBuilder_;

      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone> getCmsPhonesList() {
        if (cmsPhonesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(cmsPhones_);
        } else {
          return cmsPhonesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public int getCmsPhonesCount() {
        if (cmsPhonesBuilder_ == null) {
          return cmsPhones_.size();
        } else {
          return cmsPhonesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone getCmsPhones(int index) {
        if (cmsPhonesBuilder_ == null) {
          return cmsPhones_.get(index);
        } else {
          return cmsPhonesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder setCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone value) {
        if (cmsPhonesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCmsPhonesIsMutable();
          cmsPhones_.set(index, value);
          onChanged();
        } else {
          cmsPhonesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder setCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder builderForValue) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.set(index, builderForValue.build());
          onChanged();
        } else {
          cmsPhonesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone value) {
        if (cmsPhonesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(value);
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone value) {
        if (cmsPhonesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(index, value);
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder builderForValue) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(builderForValue.build());
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder builderForValue) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(index, builderForValue.build());
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addAllCmsPhones(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone> values) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, cmsPhones_);
          onChanged();
        } else {
          cmsPhonesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder clearCmsPhones() {
        if (cmsPhonesBuilder_ == null) {
          cmsPhones_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          cmsPhonesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder removeCmsPhones(int index) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.remove(index);
          onChanged();
        } else {
          cmsPhonesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder getCmsPhonesBuilder(
          int index) {
        return getCmsPhonesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder getCmsPhonesOrBuilder(
          int index) {
        if (cmsPhonesBuilder_ == null) {
          return cmsPhones_.get(index);  } else {
          return cmsPhonesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder> 
           getCmsPhonesOrBuilderList() {
        if (cmsPhonesBuilder_ != null) {
          return cmsPhonesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(cmsPhones_);
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder addCmsPhonesBuilder() {
        return getCmsPhonesFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.getDefaultInstance());
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder addCmsPhonesBuilder(
          int index) {
        return getCmsPhonesFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.getDefaultInstance());
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.BlockCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder> 
           getCmsPhonesBuilderList() {
        return getCmsPhonesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder> 
          getCmsPhonesFieldBuilder() {
        if (cmsPhonesBuilder_ == null) {
          cmsPhonesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhone.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask.CmsPhoneOrBuilder>(
                  cmsPhones_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          cmsPhones_ = null;
        }
        return cmsPhonesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.BlockCmsPhonesTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.BlockCmsPhonesTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhonesTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BlockCmsPhoneSuccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.BlockCmsPhoneSuccessTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    int getCmsPhoneId();

    /**
     * <pre>
     * Дата и время блокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the blockedAt field is set.
     */
    boolean hasBlockedAt();
    /**
     * <pre>
     * Дата и время блокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The blockedAt.
     */
    com.google.protobuf.Timestamp getBlockedAt();
    /**
     * <pre>
     * Дата и время блокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getBlockedAtOrBuilder();
  }
  /**
   * <pre>
   * Задача ответ на успешную блокировку аналоговой трубки на устройстве для квартиры.
   * Очередь key.device.cms_phone_block_success
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.BlockCmsPhoneSuccessTask}
   */
  public static final class BlockCmsPhoneSuccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.BlockCmsPhoneSuccessTask)
      BlockCmsPhoneSuccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BlockCmsPhoneSuccessTask.newBuilder() to construct.
    private BlockCmsPhoneSuccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BlockCmsPhoneSuccessTask() {
      requestId_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CMS_PHONE_ID_FIELD_NUMBER = 2;
    private int cmsPhoneId_ = 0;
    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    @java.lang.Override
    public int getCmsPhoneId() {
      return cmsPhoneId_;
    }

    public static final int BLOCKED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp blockedAt_;
    /**
     * <pre>
     * Дата и время блокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the blockedAt field is set.
     */
    @java.lang.Override
    public boolean hasBlockedAt() {
      return blockedAt_ != null;
    }
    /**
     * <pre>
     * Дата и время блокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The blockedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getBlockedAt() {
      return blockedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : blockedAt_;
    }
    /**
     * <pre>
     * Дата и время блокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getBlockedAtOrBuilder() {
      return blockedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : blockedAt_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        output.writeInt32(2, cmsPhoneId_);
      }
      if (blockedAt_ != null) {
        output.writeMessage(3, getBlockedAt());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, cmsPhoneId_);
      }
      if (blockedAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getBlockedAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getCmsPhoneId()
          != other.getCmsPhoneId()) return false;
      if (hasBlockedAt() != other.hasBlockedAt()) return false;
      if (hasBlockedAt()) {
        if (!getBlockedAt()
            .equals(other.getBlockedAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + CMS_PHONE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCmsPhoneId();
      if (hasBlockedAt()) {
        hash = (37 * hash) + BLOCKED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getBlockedAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на успешную блокировку аналоговой трубки на устройстве для квартиры.
     * Очередь key.device.cms_phone_block_success
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.BlockCmsPhoneSuccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.BlockCmsPhoneSuccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        cmsPhoneId_ = 0;
        blockedAt_ = null;
        if (blockedAtBuilder_ != null) {
          blockedAtBuilder_.dispose();
          blockedAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.cmsPhoneId_ = cmsPhoneId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.blockedAt_ = blockedAtBuilder_ == null
              ? blockedAt_
              : blockedAtBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getCmsPhoneId() != 0) {
          setCmsPhoneId(other.getCmsPhoneId());
        }
        if (other.hasBlockedAt()) {
          mergeBlockedAt(other.getBlockedAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int cmsPhoneId_ ;
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The cmsPhoneId.
       */
      @java.lang.Override
      public int getCmsPhoneId() {
        return cmsPhoneId_;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The cmsPhoneId to set.
       * @return This builder for chaining.
       */
      public Builder setCmsPhoneId(int value) {

        cmsPhoneId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCmsPhoneId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cmsPhoneId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp blockedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> blockedAtBuilder_;
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the blockedAt field is set.
       */
      public boolean hasBlockedAt() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The blockedAt.
       */
      public com.google.protobuf.Timestamp getBlockedAt() {
        if (blockedAtBuilder_ == null) {
          return blockedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : blockedAt_;
        } else {
          return blockedAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setBlockedAt(com.google.protobuf.Timestamp value) {
        if (blockedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          blockedAt_ = value;
        } else {
          blockedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setBlockedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (blockedAtBuilder_ == null) {
          blockedAt_ = builderForValue.build();
        } else {
          blockedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeBlockedAt(com.google.protobuf.Timestamp value) {
        if (blockedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            blockedAt_ != null &&
            blockedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getBlockedAtBuilder().mergeFrom(value);
          } else {
            blockedAt_ = value;
          }
        } else {
          blockedAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearBlockedAt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        blockedAt_ = null;
        if (blockedAtBuilder_ != null) {
          blockedAtBuilder_.dispose();
          blockedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getBlockedAtBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getBlockedAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getBlockedAtOrBuilder() {
        if (blockedAtBuilder_ != null) {
          return blockedAtBuilder_.getMessageOrBuilder();
        } else {
          return blockedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : blockedAt_;
        }
      }
      /**
       * <pre>
       * Дата и время блокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp blocked_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getBlockedAtFieldBuilder() {
        if (blockedAtBuilder_ == null) {
          blockedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getBlockedAt(),
                  getParentForChildren(),
                  isClean());
          blockedAt_ = null;
        }
        return blockedAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.BlockCmsPhoneSuccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.BlockCmsPhoneSuccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneSuccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BlockCmsPhoneFailTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.BlockCmsPhoneFailTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    int getCmsPhoneId();

    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The errorMessage.
     */
    java.lang.String getErrorMessage();
    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for errorMessage.
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes();

    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the occuredAt field is set.
     */
    boolean hasOccuredAt();
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The occuredAt.
     */
    com.google.protobuf.Timestamp getOccuredAt();
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getOccuredAtOrBuilder();
  }
  /**
   * <pre>
   * Задача ответ на ошибку при блокировке аналоговой трубки на устройстве для квартиры.
   * Очередь key.device.cms_phone_block_fail
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.BlockCmsPhoneFailTask}
   */
  public static final class BlockCmsPhoneFailTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.BlockCmsPhoneFailTask)
      BlockCmsPhoneFailTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BlockCmsPhoneFailTask.newBuilder() to construct.
    private BlockCmsPhoneFailTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BlockCmsPhoneFailTask() {
      requestId_ = "";
      errorMessage_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CMS_PHONE_ID_FIELD_NUMBER = 2;
    private int cmsPhoneId_ = 0;
    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    @java.lang.Override
    public int getCmsPhoneId() {
      return cmsPhoneId_;
    }

    public static final int ERROR_MESSAGE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object errorMessage_ = "";
    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The errorMessage.
     */
    @java.lang.Override
    public java.lang.String getErrorMessage() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        errorMessage_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for errorMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrorMessageBytes() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errorMessage_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OCCURED_AT_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp occuredAt_;
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the occuredAt field is set.
     */
    @java.lang.Override
    public boolean hasOccuredAt() {
      return occuredAt_ != null;
    }
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The occuredAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getOccuredAt() {
      return occuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
    }
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getOccuredAtOrBuilder() {
      return occuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        output.writeInt32(2, cmsPhoneId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errorMessage_);
      }
      if (occuredAt_ != null) {
        output.writeMessage(4, getOccuredAt());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, cmsPhoneId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errorMessage_);
      }
      if (occuredAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getOccuredAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getCmsPhoneId()
          != other.getCmsPhoneId()) return false;
      if (!getErrorMessage()
          .equals(other.getErrorMessage())) return false;
      if (hasOccuredAt() != other.hasOccuredAt()) return false;
      if (hasOccuredAt()) {
        if (!getOccuredAt()
            .equals(other.getOccuredAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + CMS_PHONE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCmsPhoneId();
      hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getErrorMessage().hashCode();
      if (hasOccuredAt()) {
        hash = (37 * hash) + OCCURED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getOccuredAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на ошибку при блокировке аналоговой трубки на устройстве для квартиры.
     * Очередь key.device.cms_phone_block_fail
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.BlockCmsPhoneFailTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.BlockCmsPhoneFailTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        cmsPhoneId_ = 0;
        errorMessage_ = "";
        occuredAt_ = null;
        if (occuredAtBuilder_ != null) {
          occuredAtBuilder_.dispose();
          occuredAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.cmsPhoneId_ = cmsPhoneId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.errorMessage_ = errorMessage_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.occuredAt_ = occuredAtBuilder_ == null
              ? occuredAt_
              : occuredAtBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getCmsPhoneId() != 0) {
          setCmsPhoneId(other.getCmsPhoneId());
        }
        if (!other.getErrorMessage().isEmpty()) {
          errorMessage_ = other.errorMessage_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasOccuredAt()) {
          mergeOccuredAt(other.getOccuredAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int cmsPhoneId_ ;
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The cmsPhoneId.
       */
      @java.lang.Override
      public int getCmsPhoneId() {
        return cmsPhoneId_;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The cmsPhoneId to set.
       * @return This builder for chaining.
       */
      public Builder setCmsPhoneId(int value) {

        cmsPhoneId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCmsPhoneId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cmsPhoneId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object errorMessage_ = "";
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The errorMessage.
       */
      public java.lang.String getErrorMessage() {
        java.lang.Object ref = errorMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errorMessage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for errorMessage.
       */
      public com.google.protobuf.ByteString
          getErrorMessageBytes() {
        java.lang.Object ref = errorMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errorMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        errorMessage_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorMessage() {
        errorMessage_ = getDefaultInstance().getErrorMessage();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        errorMessage_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp occuredAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> occuredAtBuilder_;
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the occuredAt field is set.
       */
      public boolean hasOccuredAt() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The occuredAt.
       */
      public com.google.protobuf.Timestamp getOccuredAt() {
        if (occuredAtBuilder_ == null) {
          return occuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
        } else {
          return occuredAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setOccuredAt(com.google.protobuf.Timestamp value) {
        if (occuredAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          occuredAt_ = value;
        } else {
          occuredAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setOccuredAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (occuredAtBuilder_ == null) {
          occuredAt_ = builderForValue.build();
        } else {
          occuredAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeOccuredAt(com.google.protobuf.Timestamp value) {
        if (occuredAtBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            occuredAt_ != null &&
            occuredAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getOccuredAtBuilder().mergeFrom(value);
          } else {
            occuredAt_ = value;
          }
        } else {
          occuredAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearOccuredAt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        occuredAt_ = null;
        if (occuredAtBuilder_ != null) {
          occuredAtBuilder_.dispose();
          occuredAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getOccuredAtBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getOccuredAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getOccuredAtOrBuilder() {
        if (occuredAtBuilder_ != null) {
          return occuredAtBuilder_.getMessageOrBuilder();
        } else {
          return occuredAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
        }
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getOccuredAtFieldBuilder() {
        if (occuredAtBuilder_ == null) {
          occuredAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getOccuredAt(),
                  getParentForChildren(),
                  isClean());
          occuredAt_ = null;
        }
        return occuredAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.BlockCmsPhoneFailTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.BlockCmsPhoneFailTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.BlockCmsPhoneFailTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActivateCmsPhonesTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ActivateCmsPhonesTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone> 
        getCmsPhonesList();
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone getCmsPhones(int index);
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    int getCmsPhonesCount();
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder> 
        getCmsPhonesOrBuilderList();
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder getCmsPhonesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача разблокировку аналоговых трубок на устройстве для квартир.
   * Очередь key.device.cms_phones_activate
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.ActivateCmsPhonesTask}
   */
  public static final class ActivateCmsPhonesTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.ActivateCmsPhonesTask)
      ActivateCmsPhonesTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ActivateCmsPhonesTask.newBuilder() to construct.
    private ActivateCmsPhonesTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ActivateCmsPhonesTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      cmsPhones_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.Builder.class);
    }

    public interface CmsPhoneOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      int getId();

      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      java.lang.String getRoomNumber();
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      com.google.protobuf.ByteString
          getRoomNumberBytes();
    }
    /**
     * <pre>
     * Аналоговая трубка
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone}
     */
    public static final class CmsPhone extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone)
        CmsPhoneOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use CmsPhone.newBuilder() to construct.
      private CmsPhone(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private CmsPhone() {
        roomNumber_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      private int id_ = 0;
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }

      public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      @java.lang.Override
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Номер квартиры
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

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

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

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

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Аналоговая трубка
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.newBuilder()
        private Builder() {

        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.id_ = id_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.roomNumber_ = roomNumber_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.getDefaultInstance()) return this;
          if (other.getId() != 0) {
            setId(other.getId());
          }
          if (!other.getRoomNumber().isEmpty()) {
            roomNumber_ = other.roomNumber_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private int id_ ;
        /**
         * <pre>
         * Идентификатор аналоговой трубки
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return id_;
        }
        /**
         * <pre>
         * Идентификатор аналоговой трубки
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {

          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Идентификатор аналоговой трубки
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object roomNumber_ = "";
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The roomNumber.
         */
        public java.lang.String getRoomNumber() {
          java.lang.Object ref = roomNumber_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            roomNumber_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for roomNumber.
         */
        public com.google.protobuf.ByteString
            getRoomNumberBytes() {
          java.lang.Object ref = roomNumber_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            roomNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearRoomNumber() {
          roomNumber_ = getDefaultInstance().getRoomNumber();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер квартиры
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CMS_PHONES_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone> cmsPhones_;
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone> getCmsPhonesList() {
      return cmsPhones_;
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder> 
        getCmsPhonesOrBuilderList() {
      return cmsPhones_;
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public int getCmsPhonesCount() {
      return cmsPhones_.size();
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone getCmsPhones(int index) {
      return cmsPhones_.get(index);
    }
    /**
     * <pre>
     * Список аналоговых трубок
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder getCmsPhonesOrBuilder(
        int index) {
      return cmsPhones_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      for (int i = 0; i < cmsPhones_.size(); i++) {
        output.writeMessage(6, cmsPhones_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      for (int i = 0; i < cmsPhones_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, cmsPhones_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (!getCmsPhonesList()
          .equals(other.getCmsPhonesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      if (getCmsPhonesCount() > 0) {
        hash = (37 * hash) + CMS_PHONES_FIELD_NUMBER;
        hash = (53 * hash) + getCmsPhonesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача разблокировку аналоговых трубок на устройстве для квартир.
     * Очередь key.device.cms_phones_activate
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ActivateCmsPhonesTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ActivateCmsPhonesTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        if (cmsPhonesBuilder_ == null) {
          cmsPhones_ = java.util.Collections.emptyList();
        } else {
          cmsPhones_ = null;
          cmsPhonesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhonesTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask result) {
        if (cmsPhonesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            cmsPhones_ = java.util.Collections.unmodifiableList(cmsPhones_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.cmsPhones_ = cmsPhones_;
        } else {
          result.cmsPhones_ = cmsPhonesBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (cmsPhonesBuilder_ == null) {
          if (!other.cmsPhones_.isEmpty()) {
            if (cmsPhones_.isEmpty()) {
              cmsPhones_ = other.cmsPhones_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureCmsPhonesIsMutable();
              cmsPhones_.addAll(other.cmsPhones_);
            }
            onChanged();
          }
        } else {
          if (!other.cmsPhones_.isEmpty()) {
            if (cmsPhonesBuilder_.isEmpty()) {
              cmsPhonesBuilder_.dispose();
              cmsPhonesBuilder_ = null;
              cmsPhones_ = other.cmsPhones_;
              bitField0_ = (bitField0_ & ~0x00000020);
              cmsPhonesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCmsPhonesFieldBuilder() : null;
            } else {
              cmsPhonesBuilder_.addAllMessages(other.cmsPhones_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.parser(),
                        extensionRegistry);
                if (cmsPhonesBuilder_ == null) {
                  ensureCmsPhonesIsMutable();
                  cmsPhones_.add(m);
                } else {
                  cmsPhonesBuilder_.addMessage(m);
                }
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone> cmsPhones_ =
        java.util.Collections.emptyList();
      private void ensureCmsPhonesIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          cmsPhones_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone>(cmsPhones_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder> cmsPhonesBuilder_;

      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone> getCmsPhonesList() {
        if (cmsPhonesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(cmsPhones_);
        } else {
          return cmsPhonesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public int getCmsPhonesCount() {
        if (cmsPhonesBuilder_ == null) {
          return cmsPhones_.size();
        } else {
          return cmsPhonesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone getCmsPhones(int index) {
        if (cmsPhonesBuilder_ == null) {
          return cmsPhones_.get(index);
        } else {
          return cmsPhonesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder setCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone value) {
        if (cmsPhonesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCmsPhonesIsMutable();
          cmsPhones_.set(index, value);
          onChanged();
        } else {
          cmsPhonesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder setCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder builderForValue) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.set(index, builderForValue.build());
          onChanged();
        } else {
          cmsPhonesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone value) {
        if (cmsPhonesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(value);
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone value) {
        if (cmsPhonesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(index, value);
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder builderForValue) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(builderForValue.build());
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addCmsPhones(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder builderForValue) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.add(index, builderForValue.build());
          onChanged();
        } else {
          cmsPhonesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder addAllCmsPhones(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone> values) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, cmsPhones_);
          onChanged();
        } else {
          cmsPhonesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder clearCmsPhones() {
        if (cmsPhonesBuilder_ == null) {
          cmsPhones_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          cmsPhonesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public Builder removeCmsPhones(int index) {
        if (cmsPhonesBuilder_ == null) {
          ensureCmsPhonesIsMutable();
          cmsPhones_.remove(index);
          onChanged();
        } else {
          cmsPhonesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder getCmsPhonesBuilder(
          int index) {
        return getCmsPhonesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder getCmsPhonesOrBuilder(
          int index) {
        if (cmsPhonesBuilder_ == null) {
          return cmsPhones_.get(index);  } else {
          return cmsPhonesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder> 
           getCmsPhonesOrBuilderList() {
        if (cmsPhonesBuilder_ != null) {
          return cmsPhonesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(cmsPhones_);
        }
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder addCmsPhonesBuilder() {
        return getCmsPhonesFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.getDefaultInstance());
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder addCmsPhonesBuilder(
          int index) {
        return getCmsPhonesFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.getDefaultInstance());
      }
      /**
       * <pre>
       * Список аналоговых трубок
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.ActivateCmsPhonesTask.CmsPhone cms_phones = 6;</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder> 
           getCmsPhonesBuilderList() {
        return getCmsPhonesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder> 
          getCmsPhonesFieldBuilder() {
        if (cmsPhonesBuilder_ == null) {
          cmsPhonesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhone.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask.CmsPhoneOrBuilder>(
                  cmsPhones_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          cmsPhones_ = null;
        }
        return cmsPhonesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ActivateCmsPhonesTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.ActivateCmsPhonesTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhonesTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActivateCmsPhoneSuccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ActivateCmsPhoneSuccessTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    int getCmsPhoneId();

    /**
     * <pre>
     * Дата и время разблокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the activatedAt field is set.
     */
    boolean hasActivatedAt();
    /**
     * <pre>
     * Дата и время разблокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The activatedAt.
     */
    com.google.protobuf.Timestamp getActivatedAt();
    /**
     * <pre>
     * Дата и время разблокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getActivatedAtOrBuilder();
  }
  /**
   * <pre>
   * Задача ответ на успешную разблокировку аналоговой трубки на устройстве для квартиры.
   * Очередь key.device.cms_phone_activate_success
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.ActivateCmsPhoneSuccessTask}
   */
  public static final class ActivateCmsPhoneSuccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.ActivateCmsPhoneSuccessTask)
      ActivateCmsPhoneSuccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ActivateCmsPhoneSuccessTask.newBuilder() to construct.
    private ActivateCmsPhoneSuccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ActivateCmsPhoneSuccessTask() {
      requestId_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CMS_PHONE_ID_FIELD_NUMBER = 2;
    private int cmsPhoneId_ = 0;
    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    @java.lang.Override
    public int getCmsPhoneId() {
      return cmsPhoneId_;
    }

    public static final int ACTIVATED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp activatedAt_;
    /**
     * <pre>
     * Дата и время разблокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the activatedAt field is set.
     */
    @java.lang.Override
    public boolean hasActivatedAt() {
      return activatedAt_ != null;
    }
    /**
     * <pre>
     * Дата и время разблокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The activatedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getActivatedAt() {
      return activatedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : activatedAt_;
    }
    /**
     * <pre>
     * Дата и время разблокировки аналоговой трубки
     * </pre>
     *
     * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getActivatedAtOrBuilder() {
      return activatedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : activatedAt_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        output.writeInt32(2, cmsPhoneId_);
      }
      if (activatedAt_ != null) {
        output.writeMessage(3, getActivatedAt());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, cmsPhoneId_);
      }
      if (activatedAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getActivatedAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getCmsPhoneId()
          != other.getCmsPhoneId()) return false;
      if (hasActivatedAt() != other.hasActivatedAt()) return false;
      if (hasActivatedAt()) {
        if (!getActivatedAt()
            .equals(other.getActivatedAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + CMS_PHONE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCmsPhoneId();
      if (hasActivatedAt()) {
        hash = (37 * hash) + ACTIVATED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getActivatedAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на успешную разблокировку аналоговой трубки на устройстве для квартиры.
     * Очередь key.device.cms_phone_activate_success
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ActivateCmsPhoneSuccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ActivateCmsPhoneSuccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        cmsPhoneId_ = 0;
        activatedAt_ = null;
        if (activatedAtBuilder_ != null) {
          activatedAtBuilder_.dispose();
          activatedAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.cmsPhoneId_ = cmsPhoneId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.activatedAt_ = activatedAtBuilder_ == null
              ? activatedAt_
              : activatedAtBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getCmsPhoneId() != 0) {
          setCmsPhoneId(other.getCmsPhoneId());
        }
        if (other.hasActivatedAt()) {
          mergeActivatedAt(other.getActivatedAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int cmsPhoneId_ ;
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The cmsPhoneId.
       */
      @java.lang.Override
      public int getCmsPhoneId() {
        return cmsPhoneId_;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The cmsPhoneId to set.
       * @return This builder for chaining.
       */
      public Builder setCmsPhoneId(int value) {

        cmsPhoneId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCmsPhoneId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cmsPhoneId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp activatedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> activatedAtBuilder_;
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the activatedAt field is set.
       */
      public boolean hasActivatedAt() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The activatedAt.
       */
      public com.google.protobuf.Timestamp getActivatedAt() {
        if (activatedAtBuilder_ == null) {
          return activatedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : activatedAt_;
        } else {
          return activatedAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setActivatedAt(com.google.protobuf.Timestamp value) {
        if (activatedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          activatedAt_ = value;
        } else {
          activatedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setActivatedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (activatedAtBuilder_ == null) {
          activatedAt_ = builderForValue.build();
        } else {
          activatedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeActivatedAt(com.google.protobuf.Timestamp value) {
        if (activatedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            activatedAt_ != null &&
            activatedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getActivatedAtBuilder().mergeFrom(value);
          } else {
            activatedAt_ = value;
          }
        } else {
          activatedAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearActivatedAt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        activatedAt_ = null;
        if (activatedAtBuilder_ != null) {
          activatedAtBuilder_.dispose();
          activatedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getActivatedAtBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getActivatedAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getActivatedAtOrBuilder() {
        if (activatedAtBuilder_ != null) {
          return activatedAtBuilder_.getMessageOrBuilder();
        } else {
          return activatedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : activatedAt_;
        }
      }
      /**
       * <pre>
       * Дата и время разблокировки аналоговой трубки
       * </pre>
       *
       * <code>.google.protobuf.Timestamp activated_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getActivatedAtFieldBuilder() {
        if (activatedAtBuilder_ == null) {
          activatedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getActivatedAt(),
                  getParentForChildren(),
                  isClean());
          activatedAt_ = null;
        }
        return activatedAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ActivateCmsPhoneSuccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.ActivateCmsPhoneSuccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneSuccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActivateCmsPhoneFailTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.ActivateCmsPhoneFailTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    int getCmsPhoneId();

    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The errorMessage.
     */
    java.lang.String getErrorMessage();
    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for errorMessage.
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes();

    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the occuredAt field is set.
     */
    boolean hasOccuredAt();
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The occuredAt.
     */
    com.google.protobuf.Timestamp getOccuredAt();
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getOccuredAtOrBuilder();
  }
  /**
   * <pre>
   * Задача ответ на ошибку при разблокировке аналоговой трубки на устройстве для квартиры.
   * Очередь key.device.cms_phone_activate_fail
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.ActivateCmsPhoneFailTask}
   */
  public static final class ActivateCmsPhoneFailTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.ActivateCmsPhoneFailTask)
      ActivateCmsPhoneFailTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ActivateCmsPhoneFailTask.newBuilder() to construct.
    private ActivateCmsPhoneFailTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ActivateCmsPhoneFailTask() {
      requestId_ = "";
      errorMessage_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CMS_PHONE_ID_FIELD_NUMBER = 2;
    private int cmsPhoneId_ = 0;
    /**
     * <pre>
     * Идентификатор аналоговой трубки
     * </pre>
     *
     * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The cmsPhoneId.
     */
    @java.lang.Override
    public int getCmsPhoneId() {
      return cmsPhoneId_;
    }

    public static final int ERROR_MESSAGE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object errorMessage_ = "";
    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The errorMessage.
     */
    @java.lang.Override
    public java.lang.String getErrorMessage() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        errorMessage_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Текст ошибки
     * </pre>
     *
     * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for errorMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrorMessageBytes() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errorMessage_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OCCURED_AT_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp occuredAt_;
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the occuredAt field is set.
     */
    @java.lang.Override
    public boolean hasOccuredAt() {
      return occuredAt_ != null;
    }
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The occuredAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getOccuredAt() {
      return occuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
    }
    /**
     * <pre>
     * Дата и время события
     * </pre>
     *
     * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getOccuredAtOrBuilder() {
      return occuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        output.writeInt32(2, cmsPhoneId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errorMessage_);
      }
      if (occuredAt_ != null) {
        output.writeMessage(4, getOccuredAt());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (cmsPhoneId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, cmsPhoneId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errorMessage_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errorMessage_);
      }
      if (occuredAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getOccuredAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getCmsPhoneId()
          != other.getCmsPhoneId()) return false;
      if (!getErrorMessage()
          .equals(other.getErrorMessage())) return false;
      if (hasOccuredAt() != other.hasOccuredAt()) return false;
      if (hasOccuredAt()) {
        if (!getOccuredAt()
            .equals(other.getOccuredAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + CMS_PHONE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCmsPhoneId();
      hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getErrorMessage().hashCode();
      if (hasOccuredAt()) {
        hash = (37 * hash) + OCCURED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getOccuredAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на ошибку при разблокировке аналоговой трубки на устройстве для квартиры.
     * Очередь key.device.cms_phone_activate_fail
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.ActivateCmsPhoneFailTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.ActivateCmsPhoneFailTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        cmsPhoneId_ = 0;
        errorMessage_ = "";
        occuredAt_ = null;
        if (occuredAtBuilder_ != null) {
          occuredAtBuilder_.dispose();
          occuredAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.cmsPhoneId_ = cmsPhoneId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.errorMessage_ = errorMessage_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.occuredAt_ = occuredAtBuilder_ == null
              ? occuredAt_
              : occuredAtBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getCmsPhoneId() != 0) {
          setCmsPhoneId(other.getCmsPhoneId());
        }
        if (!other.getErrorMessage().isEmpty()) {
          errorMessage_ = other.errorMessage_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasOccuredAt()) {
          mergeOccuredAt(other.getOccuredAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int cmsPhoneId_ ;
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The cmsPhoneId.
       */
      @java.lang.Override
      public int getCmsPhoneId() {
        return cmsPhoneId_;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The cmsPhoneId to set.
       * @return This builder for chaining.
       */
      public Builder setCmsPhoneId(int value) {

        cmsPhoneId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор аналоговой трубки
       * </pre>
       *
       * <code>int32 cms_phone_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearCmsPhoneId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cmsPhoneId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object errorMessage_ = "";
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The errorMessage.
       */
      public java.lang.String getErrorMessage() {
        java.lang.Object ref = errorMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errorMessage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for errorMessage.
       */
      public com.google.protobuf.ByteString
          getErrorMessageBytes() {
        java.lang.Object ref = errorMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errorMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        errorMessage_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorMessage() {
        errorMessage_ = getDefaultInstance().getErrorMessage();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Текст ошибки
       * </pre>
       *
       * <code>string error_message = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        errorMessage_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp occuredAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> occuredAtBuilder_;
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the occuredAt field is set.
       */
      public boolean hasOccuredAt() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The occuredAt.
       */
      public com.google.protobuf.Timestamp getOccuredAt() {
        if (occuredAtBuilder_ == null) {
          return occuredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
        } else {
          return occuredAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setOccuredAt(com.google.protobuf.Timestamp value) {
        if (occuredAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          occuredAt_ = value;
        } else {
          occuredAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setOccuredAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (occuredAtBuilder_ == null) {
          occuredAt_ = builderForValue.build();
        } else {
          occuredAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeOccuredAt(com.google.protobuf.Timestamp value) {
        if (occuredAtBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            occuredAt_ != null &&
            occuredAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getOccuredAtBuilder().mergeFrom(value);
          } else {
            occuredAt_ = value;
          }
        } else {
          occuredAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearOccuredAt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        occuredAt_ = null;
        if (occuredAtBuilder_ != null) {
          occuredAtBuilder_.dispose();
          occuredAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getOccuredAtBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getOccuredAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getOccuredAtOrBuilder() {
        if (occuredAtBuilder_ != null) {
          return occuredAtBuilder_.getMessageOrBuilder();
        } else {
          return occuredAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : occuredAt_;
        }
      }
      /**
       * <pre>
       * Дата и время события
       * </pre>
       *
       * <code>.google.protobuf.Timestamp occured_at = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getOccuredAtFieldBuilder() {
        if (occuredAtBuilder_ == null) {
          occuredAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getOccuredAt(),
                  getParentForChildren(),
                  isClean());
          occuredAt_ = null;
        }
        return occuredAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.ActivateCmsPhoneFailTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.ActivateCmsPhoneFailTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.ActivateCmsPhoneFailTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CmsAvailableTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.CmsAvailableTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();
  }
  /**
   * <pre>
   * Сообщение о появлении возможности работы с аналоговыми трубками на устройстве.
   * Очередь key.device.device_cms_available
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.CmsAvailableTask}
   */
  public static final class CmsAvailableTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.CmsAvailableTask)
      CmsAvailableTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CmsAvailableTask.newBuilder() to construct.
    private CmsAvailableTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CmsAvailableTask() {
      requestId_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsAvailableTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsAvailableTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Сообщение о появлении возможности работы с аналоговыми трубками на устройстве.
     * Очередь key.device.device_cms_available
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.CmsAvailableTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.CmsAvailableTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsAvailableTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsAvailableTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CmsAvailableTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.CmsAvailableTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.CmsAvailableTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CmsAvailableTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SipRoomOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.SipRoom)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sipNumber.
     */
    java.lang.String getSipNumber();
    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sipNumber.
     */
    com.google.protobuf.ByteString
        getSipNumberBytes();

    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    java.lang.String getRoomNumber();
    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    com.google.protobuf.ByteString
        getRoomNumberBytes();

    /**
     * <pre>
     * Идентификатор квартиры.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomId.
     */
    int getRoomId();
  }
  /**
   * <pre>
   * Сип-номер в помещении
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.SipRoom}
   */
  public static final class SipRoom extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.SipRoom)
      SipRoomOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SipRoom.newBuilder() to construct.
    private SipRoom(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SipRoom() {
      sipNumber_ = "";
      roomNumber_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoom_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoom_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder.class);
    }

    public static final int SIP_NUMBER_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sipNumber_ = "";
    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sipNumber.
     */
    @java.lang.Override
    public java.lang.String getSipNumber() {
      java.lang.Object ref = sipNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        sipNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sipNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSipNumberBytes() {
      java.lang.Object ref = sipNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sipNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object roomNumber_ = "";
    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    @java.lang.Override
    public java.lang.String getRoomNumber() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        roomNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumberBytes() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        roomNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOM_ID_FIELD_NUMBER = 3;
    private int roomId_ = 0;
    /**
     * <pre>
     * Идентификатор квартиры.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomId.
     */
    @java.lang.Override
    public int getRoomId() {
      return roomId_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

      if (!getSipNumber()
          .equals(other.getSipNumber())) return false;
      if (!getRoomNumber()
          .equals(other.getRoomNumber())) return false;
      if (getRoomId()
          != other.getRoomId()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SIP_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSipNumber().hashCode();
      hash = (37 * hash) + ROOM_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getRoomNumber().hashCode();
      hash = (37 * hash) + ROOM_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRoomId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Сип-номер в помещении
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.SipRoom}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.SipRoom)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoom_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoom_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoom_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sipNumber_ = sipNumber_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.roomNumber_ = roomNumber_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.roomId_ = roomId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom.getDefaultInstance()) return this;
        if (!other.getSipNumber().isEmpty()) {
          sipNumber_ = other.sipNumber_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getRoomNumber().isEmpty()) {
          roomNumber_ = other.roomNumber_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getRoomId() != 0) {
          setRoomId(other.getRoomId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object sipNumber_ = "";
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sipNumber.
       */
      public java.lang.String getSipNumber() {
        java.lang.Object ref = sipNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sipNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sipNumber.
       */
      public com.google.protobuf.ByteString
          getSipNumberBytes() {
        java.lang.Object ref = sipNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sipNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The sipNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSipNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sipNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearSipNumber() {
        sipNumber_ = getDefaultInstance().getSipNumber();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for sipNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSipNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sipNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        roomNumber_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumber() {
        roomNumber_ = getDefaultInstance().getRoomNumber();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        roomNumber_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int roomId_ ;
      /**
       * <pre>
       * Идентификатор квартиры.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomId.
       */
      @java.lang.Override
      public int getRoomId() {
        return roomId_;
      }
      /**
       * <pre>
       * Идентификатор квартиры.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomId to set.
       * @return This builder for chaining.
       */
      public Builder setRoomId(int value) {

        roomId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор квартиры.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        roomId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.SipRoom)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.SipRoom)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoom getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SipRoomErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.SipRoomError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sipNumber.
     */
    java.lang.String getSipNumber();
    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sipNumber.
     */
    com.google.protobuf.ByteString
        getSipNumberBytes();

    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    java.lang.String getRoomNumber();
    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    com.google.protobuf.ByteString
        getRoomNumberBytes();

    /**
     * <pre>
     * Идентификатор квартиры.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomId.
     */
    int getRoomId();

    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * <pre>
   * Ошибка сип-номера в помещении
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.SipRoomError}
   */
  public static final class SipRoomError extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.SipRoomError)
      SipRoomErrorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SipRoomError.newBuilder() to construct.
    private SipRoomError(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SipRoomError() {
      sipNumber_ = "";
      roomNumber_ = "";
      message_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoomError_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoomError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder.class);
    }

    public static final int SIP_NUMBER_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sipNumber_ = "";
    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sipNumber.
     */
    @java.lang.Override
    public java.lang.String getSipNumber() {
      java.lang.Object ref = sipNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        sipNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер сип-трубки.
     * # Диапазон: 5..14
     * </pre>
     *
     * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sipNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSipNumberBytes() {
      java.lang.Object ref = sipNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sipNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object roomNumber_ = "";
    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    @java.lang.Override
    public java.lang.String getRoomNumber() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        roomNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер помещения.
     * # Диапазон: 1..10000
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumberBytes() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        roomNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOM_ID_FIELD_NUMBER = 3;
    private int roomId_ = 0;
    /**
     * <pre>
     * Идентификатор квартиры.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomId.
     */
    @java.lang.Override
    public int getRoomId() {
      return roomId_;
    }

    public static final int MESSAGE_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        message_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sipNumber_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sipNumber_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(roomNumber_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, roomNumber_);
      }
      if (roomId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, roomId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, message_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getSipNumber()
          .equals(other.getSipNumber())) return false;
      if (!getRoomNumber()
          .equals(other.getRoomNumber())) return false;
      if (getRoomId()
          != other.getRoomId()) return false;
      if (!getMessage()
          .equals(other.getMessage())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SIP_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSipNumber().hashCode();
      hash = (37 * hash) + ROOM_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getRoomNumber().hashCode();
      hash = (37 * hash) + ROOM_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRoomId();
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ошибка сип-номера в помещении
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.SipRoomError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.SipRoomError)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoomError_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoomError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sipNumber_ = "";
        roomNumber_ = "";
        roomId_ = 0;
        message_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_SipRoomError_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sipNumber_ = sipNumber_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.roomNumber_ = roomNumber_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.roomId_ = roomId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.message_ = message_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError.getDefaultInstance()) return this;
        if (!other.getSipNumber().isEmpty()) {
          sipNumber_ = other.sipNumber_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getRoomNumber().isEmpty()) {
          roomNumber_ = other.roomNumber_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getRoomId() != 0) {
          setRoomId(other.getRoomId());
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object sipNumber_ = "";
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sipNumber.
       */
      public java.lang.String getSipNumber() {
        java.lang.Object ref = sipNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sipNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sipNumber.
       */
      public com.google.protobuf.ByteString
          getSipNumberBytes() {
        java.lang.Object ref = sipNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sipNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The sipNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSipNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sipNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearSipNumber() {
        sipNumber_ = getDefaultInstance().getSipNumber();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер сип-трубки.
       * # Диапазон: 5..14
       * </pre>
       *
       * <code>string sip_number = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for sipNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSipNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sipNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        roomNumber_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumber() {
        roomNumber_ = getDefaultInstance().getRoomNumber();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения.
       * # Диапазон: 1..10000
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        roomNumber_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int roomId_ ;
      /**
       * <pre>
       * Идентификатор квартиры.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomId.
       */
      @java.lang.Override
      public int getRoomId() {
        return roomId_;
      }
      /**
       * <pre>
       * Идентификатор квартиры.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomId to set.
       * @return This builder for chaining.
       */
      public Builder setRoomId(int value) {

        roomId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор квартиры.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 room_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        roomId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        message_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.SipRoomError)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.SipRoomError)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.SipRoomError getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RfidOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.Rfid)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор ключа
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The key.
     */
    java.lang.String getKey();
    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for key.
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    java.lang.String getRoomNumber();
    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    com.google.protobuf.ByteString
        getRoomNumberBytes();
  }
  /**
   * <pre>
   * Ключ
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.Rfid}
   */
  public static final class Rfid extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.Rfid)
      RfidOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Rfid.newBuilder() to construct.
    private Rfid(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Rfid() {
      key_ = "";
      roomNumber_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Rfid_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Rfid_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <pre>
     * Идентификатор ключа
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int KEY_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object key_ = "";
    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The key.
     */
    @java.lang.Override
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        key_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for key.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOM_NUMBER_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object roomNumber_ = "";
    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    @java.lang.Override
    public java.lang.String getRoomNumber() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        roomNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumberBytes() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        roomNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

      if (getId()
          != other.getId()) return false;
      if (!getKey()
          .equals(other.getKey())) return false;
      if (!getRoomNumber()
          .equals(other.getRoomNumber())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ключ
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.Rfid}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.Rfid)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Rfid_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Rfid_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Rfid_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.key_ = key_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.roomNumber_ = roomNumber_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (!other.getKey().isEmpty()) {
          key_ = other.key_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getRoomNumber().isEmpty()) {
          roomNumber_ = other.roomNumber_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int id_ ;
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object key_ = "";
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for key.
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        key_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        key_ = getDefaultInstance().getKey();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for key to set.
       * @return This builder for chaining.
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        key_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumber() {
        roomNumber_ = getDefaultInstance().getRoomNumber();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.Rfid)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.Rfid)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CodeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.Code)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор кода
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * Значение кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    java.lang.String getCode();
    /**
     * <pre>
     * Значение кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    com.google.protobuf.ByteString
        getCodeBytes();

    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    java.lang.String getRoomNumber();
    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    com.google.protobuf.ByteString
        getRoomNumberBytes();
  }
  /**
   * <pre>
   * Код
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.Code}
   */
  public static final class Code extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.Code)
      CodeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Code.newBuilder() to construct.
    private Code(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Code() {
      code_ = "";
      roomNumber_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Code_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Code_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <pre>
     * Идентификатор кода
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

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

    public static final int ROOM_NUMBER_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object roomNumber_ = "";
    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    @java.lang.Override
    public java.lang.String getRoomNumber() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        roomNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumberBytes() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        roomNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Код
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.Code}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.Code)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Code_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Code_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_Code_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.code_ = code_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.roomNumber_ = roomNumber_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (!other.getCode().isEmpty()) {
          code_ = other.code_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getRoomNumber().isEmpty()) {
          roomNumber_ = other.roomNumber_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int id_ ;
      /**
       * <pre>
       * Идентификатор кода
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * Идентификатор кода
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор кода
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

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

      private java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumber() {
        roomNumber_ = getDefaultInstance().getRoomNumber();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.Code)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.Code)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RfidErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.RfidError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор ключа
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The key.
     */
    java.lang.String getKey();
    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for key.
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    java.lang.String getRoomNumber();
    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    com.google.protobuf.ByteString
        getRoomNumberBytes();

    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * <pre>
   * Ошибка ключа
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.RfidError}
   */
  public static final class RfidError extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.RfidError)
      RfidErrorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RfidError.newBuilder() to construct.
    private RfidError(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RfidError() {
      key_ = "";
      roomNumber_ = "";
      message_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_RfidError_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_RfidError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <pre>
     * Идентификатор ключа
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int KEY_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object key_ = "";
    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The key.
     */
    @java.lang.Override
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        key_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Значение ключа
     * </pre>
     *
     * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for key.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOM_NUMBER_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object roomNumber_ = "";
    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    @java.lang.Override
    public java.lang.String getRoomNumber() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        roomNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер помещения к которому прявязан ключ
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumberBytes() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        roomNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        message_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (id_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, key_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(roomNumber_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, roomNumber_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, message_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (getId()
          != other.getId()) return false;
      if (!getKey()
          .equals(other.getKey())) return false;
      if (!getRoomNumber()
          .equals(other.getRoomNumber())) return false;
      if (!getMessage()
          .equals(other.getMessage())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId();
      hash = (37 * hash) + KEY_FIELD_NUMBER;
      hash = (53 * hash) + getKey().hashCode();
      hash = (37 * hash) + ROOM_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getRoomNumber().hashCode();
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ошибка ключа
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.RfidError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.RfidError)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_RfidError_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_RfidError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_RfidError_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.key_ = key_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.roomNumber_ = roomNumber_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.message_ = message_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (!other.getKey().isEmpty()) {
          key_ = other.key_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getRoomNumber().isEmpty()) {
          roomNumber_ = other.roomNumber_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int id_ ;
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object key_ = "";
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for key.
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        key_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        key_ = getDefaultInstance().getKey();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for key to set.
       * @return This builder for chaining.
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        key_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumber() {
        roomNumber_ = getDefaultInstance().getRoomNumber();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        message_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.RfidError)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.RfidError)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CodeErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.CodeError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор кода
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * Значение кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The code.
     */
    java.lang.String getCode();
    /**
     * <pre>
     * Значение кода
     * </pre>
     *
     * <code>string code = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for code.
     */
    com.google.protobuf.ByteString
        getCodeBytes();

    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    java.lang.String getRoomNumber();
    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    com.google.protobuf.ByteString
        getRoomNumberBytes();

    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * <pre>
   * Ошибка кода
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.CodeError}
   */
  public static final class CodeError extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.CodeError)
      CodeErrorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CodeError.newBuilder() to construct.
    private CodeError(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CodeError() {
      code_ = "";
      roomNumber_ = "";
      message_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CodeError_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CodeError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <pre>
     * Идентификатор кода
     * </pre>
     *
     * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

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

    public static final int ROOM_NUMBER_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object roomNumber_ = "";
    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    @java.lang.Override
    public java.lang.String getRoomNumber() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        roomNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Номер помещения к которому прявязан код
     * </pre>
     *
     * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumberBytes() {
      java.lang.Object ref = roomNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        roomNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        message_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Сообщение об ошибке
     * </pre>
     *
     * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ошибка кода
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.CodeError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.CodeError)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CodeError_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CodeError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CodeError_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance();
      }

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

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

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.code_ = code_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.roomNumber_ = roomNumber_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.message_ = message_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (!other.getCode().isEmpty()) {
          code_ = other.code_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getRoomNumber().isEmpty()) {
          roomNumber_ = other.roomNumber_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int id_ ;
      /**
       * <pre>
       * Идентификатор кода
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * Идентификатор кода
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор кода
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

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

      private java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumber() {
        roomNumber_ = getDefaultInstance().getRoomNumber();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан код
       * </pre>
       *
       * <code>string room_number = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        roomNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сообщение об ошибке
       * </pre>
       *
       * <code>string message = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        message_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.CodeError)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.CodeError)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddSl3RfidsTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddSl3RfidsTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid> 
        getSl3RfidsList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid getSl3Rfids(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getSl3RfidsCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder> 
        getSl3RfidsOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder getSl3RfidsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача на добавление Sl3 ключей на устройство.
   * Очередь key.device.add_sl3_rfids
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.AddSl3RfidsTask}
   */
  public static final class AddSl3RfidsTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddSl3RfidsTask)
      AddSl3RfidsTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddSl3RfidsTask.newBuilder() to construct.
    private AddSl3RfidsTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddSl3RfidsTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      sl3Rfids_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Builder.class);
    }

    public interface Sl3RfidOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      int getId();

      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      java.lang.String getRoomNumber();
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      com.google.protobuf.ByteString
          getRoomNumberBytes();

      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The key.
       */
      java.lang.String getKey();
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for key.
       */
      com.google.protobuf.ByteString
          getKeyBytes();

      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The keySecret.
       */
      java.lang.String getKeySecret();
      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for keySecret.
       */
      com.google.protobuf.ByteString
          getKeySecretBytes();
    }
    /**
     * <pre>
     * Ключ sl3
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid}
     */
    public static final class Sl3Rfid extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid)
        Sl3RfidOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Sl3Rfid.newBuilder() to construct.
      private Sl3Rfid(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Sl3Rfid() {
        roomNumber_ = "";
        key_ = "";
        keySecret_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      private int id_ = 0;
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }

      public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      @java.lang.Override
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int KEY_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private volatile java.lang.Object key_ = "";
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The key.
       */
      @java.lang.Override
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          key_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for key.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int KEY_SECRET_FIELD_NUMBER = 4;
      @SuppressWarnings("serial")
      private volatile java.lang.Object keySecret_ = "";
      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The keySecret.
       */
      @java.lang.Override
      public java.lang.String getKeySecret() {
        java.lang.Object ref = keySecret_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          keySecret_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for keySecret.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKeySecretBytes() {
        java.lang.Object ref = keySecret_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          keySecret_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        if (id_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, id_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(roomNumber_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, roomNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, key_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(keySecret_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, keySecret_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (getId()
            != other.getId()) return false;
        if (!getRoomNumber()
            .equals(other.getRoomNumber())) return false;
        if (!getKey()
            .equals(other.getKey())) return false;
        if (!getKeySecret()
            .equals(other.getKeySecret())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId();
        hash = (37 * hash) + ROOM_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getRoomNumber().hashCode();
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
        hash = (37 * hash) + KEY_SECRET_FIELD_NUMBER;
        hash = (53 * hash) + getKeySecret().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ключ sl3
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.newBuilder()
        private Builder() {

        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.id_ = id_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.roomNumber_ = roomNumber_;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.key_ = key_;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.keySecret_ = keySecret_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.getDefaultInstance()) return this;
          if (other.getId() != 0) {
            setId(other.getId());
          }
          if (!other.getRoomNumber().isEmpty()) {
            roomNumber_ = other.roomNumber_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (!other.getKey().isEmpty()) {
            key_ = other.key_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (!other.getKeySecret().isEmpty()) {
            keySecret_ = other.keySecret_;
            bitField0_ |= 0x00000008;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private int id_ ;
        /**
         * <pre>
         * Идентификатор ключа
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return id_;
        }
        /**
         * <pre>
         * Идентификатор ключа
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {

          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Идентификатор ключа
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object roomNumber_ = "";
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The roomNumber.
         */
        public java.lang.String getRoomNumber() {
          java.lang.Object ref = roomNumber_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            roomNumber_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for roomNumber.
         */
        public com.google.protobuf.ByteString
            getRoomNumberBytes() {
          java.lang.Object ref = roomNumber_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            roomNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearRoomNumber() {
          roomNumber_ = getDefaultInstance().getRoomNumber();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }

        private java.lang.Object key_ = "";
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The key.
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for key.
         */
        public com.google.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The key to set.
         * @return This builder for chaining.
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          key_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          key_ = getDefaultInstance().getKey();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for key to set.
         * @return This builder for chaining.
         */
        public Builder setKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          key_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }

        private java.lang.Object keySecret_ = "";
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The keySecret.
         */
        public java.lang.String getKeySecret() {
          java.lang.Object ref = keySecret_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            keySecret_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for keySecret.
         */
        public com.google.protobuf.ByteString
            getKeySecretBytes() {
          java.lang.Object ref = keySecret_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            keySecret_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The keySecret to set.
         * @return This builder for chaining.
         */
        public Builder setKeySecret(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          keySecret_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearKeySecret() {
          keySecret_ = getDefaultInstance().getKeySecret();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for keySecret to set.
         * @return This builder for chaining.
         */
        public Builder setKeySecretBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          keySecret_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int SL3_RFIDS_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid> sl3Rfids_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid> getSl3RfidsList() {
      return sl3Rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder> 
        getSl3RfidsOrBuilderList() {
      return sl3Rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getSl3RfidsCount() {
      return sl3Rfids_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid getSl3Rfids(int index) {
      return sl3Rfids_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder getSl3RfidsOrBuilder(
        int index) {
      return sl3Rfids_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      for (int i = 0; i < sl3Rfids_.size(); i++) {
        output.writeMessage(7, sl3Rfids_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      for (int i = 0; i < sl3Rfids_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, sl3Rfids_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getSl3RfidsList()
          .equals(other.getSl3RfidsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getSl3RfidsCount() > 0) {
        hash = (37 * hash) + SL3_RFIDS_FIELD_NUMBER;
        hash = (53 * hash) + getSl3RfidsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на добавление Sl3 ключей на устройство.
     * Очередь key.device.add_sl3_rfids
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddSl3RfidsTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddSl3RfidsTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        if (sl3RfidsBuilder_ == null) {
          sl3Rfids_ = java.util.Collections.emptyList();
        } else {
          sl3Rfids_ = null;
          sl3RfidsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddSl3RfidsTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask result) {
        if (sl3RfidsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            sl3Rfids_ = java.util.Collections.unmodifiableList(sl3Rfids_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.sl3Rfids_ = sl3Rfids_;
        } else {
          result.sl3Rfids_ = sl3RfidsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (sl3RfidsBuilder_ == null) {
          if (!other.sl3Rfids_.isEmpty()) {
            if (sl3Rfids_.isEmpty()) {
              sl3Rfids_ = other.sl3Rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureSl3RfidsIsMutable();
              sl3Rfids_.addAll(other.sl3Rfids_);
            }
            onChanged();
          }
        } else {
          if (!other.sl3Rfids_.isEmpty()) {
            if (sl3RfidsBuilder_.isEmpty()) {
              sl3RfidsBuilder_.dispose();
              sl3RfidsBuilder_ = null;
              sl3Rfids_ = other.sl3Rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
              sl3RfidsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSl3RfidsFieldBuilder() : null;
            } else {
              sl3RfidsBuilder_.addAllMessages(other.sl3Rfids_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.parser(),
                        extensionRegistry);
                if (sl3RfidsBuilder_ == null) {
                  ensureSl3RfidsIsMutable();
                  sl3Rfids_.add(m);
                } else {
                  sl3RfidsBuilder_.addMessage(m);
                }
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid> sl3Rfids_ =
        java.util.Collections.emptyList();
      private void ensureSl3RfidsIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          sl3Rfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid>(sl3Rfids_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder> sl3RfidsBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid> getSl3RfidsList() {
        if (sl3RfidsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sl3Rfids_);
        } else {
          return sl3RfidsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getSl3RfidsCount() {
        if (sl3RfidsBuilder_ == null) {
          return sl3Rfids_.size();
        } else {
          return sl3RfidsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid getSl3Rfids(int index) {
        if (sl3RfidsBuilder_ == null) {
          return sl3Rfids_.get(index);
        } else {
          return sl3RfidsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid value) {
        if (sl3RfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSl3RfidsIsMutable();
          sl3Rfids_.set(index, value);
          onChanged();
        } else {
          sl3RfidsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder builderForValue) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.set(index, builderForValue.build());
          onChanged();
        } else {
          sl3RfidsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid value) {
        if (sl3RfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(value);
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid value) {
        if (sl3RfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(index, value);
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder builderForValue) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(builderForValue.build());
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder builderForValue) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(index, builderForValue.build());
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllSl3Rfids(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid> values) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sl3Rfids_);
          onChanged();
        } else {
          sl3RfidsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearSl3Rfids() {
        if (sl3RfidsBuilder_ == null) {
          sl3Rfids_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          sl3RfidsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeSl3Rfids(int index) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.remove(index);
          onChanged();
        } else {
          sl3RfidsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder getSl3RfidsBuilder(
          int index) {
        return getSl3RfidsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder getSl3RfidsOrBuilder(
          int index) {
        if (sl3RfidsBuilder_ == null) {
          return sl3Rfids_.get(index);  } else {
          return sl3RfidsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder> 
           getSl3RfidsOrBuilderList() {
        if (sl3RfidsBuilder_ != null) {
          return sl3RfidsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sl3Rfids_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder addSl3RfidsBuilder() {
        return getSl3RfidsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder addSl3RfidsBuilder(
          int index) {
        return getSl3RfidsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.AddSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder> 
           getSl3RfidsBuilderList() {
        return getSl3RfidsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder> 
          getSl3RfidsFieldBuilder() {
        if (sl3RfidsBuilder_ == null) {
          sl3RfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask.Sl3RfidOrBuilder>(
                  sl3Rfids_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          sl3Rfids_ = null;
        }
        return sl3RfidsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddSl3RfidsTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddSl3RfidsTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddSl3RfidsTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddRfidsTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddRfidsTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> 
        getRfidsList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getRfidsCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача на добавление ключей на устройство.
   * Очередь key.device.add_rfids
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.AddRfidsTask}
   */
  public static final class AddRfidsTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddRfidsTask)
      AddRfidsTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddRfidsTask.newBuilder() to construct.
    private AddRfidsTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddRfidsTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      rfids_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RFIDS_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getRfidsCount() {
      return rfids_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
      return rfids_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index) {
      return rfids_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        output.writeMessage(7, rfids_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, rfids_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getRfidsList()
          .equals(other.getRfidsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getRfidsCount() > 0) {
        hash = (37 * hash) + RFIDS_FIELD_NUMBER;
        hash = (53 * hash) + getRfidsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на добавление ключей на устройство.
     * Очередь key.device.add_rfids
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddRfidsTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddRfidsTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
        } else {
          rfids_ = null;
          rfidsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask result) {
        if (rfidsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            rfids_ = java.util.Collections.unmodifiableList(rfids_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.rfids_ = rfids_;
        } else {
          result.rfids_ = rfidsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (rfidsBuilder_ == null) {
          if (!other.rfids_.isEmpty()) {
            if (rfids_.isEmpty()) {
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureRfidsIsMutable();
              rfids_.addAll(other.rfids_);
            }
            onChanged();
          }
        } else {
          if (!other.rfids_.isEmpty()) {
            if (rfidsBuilder_.isEmpty()) {
              rfidsBuilder_.dispose();
              rfidsBuilder_ = null;
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
              rfidsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRfidsFieldBuilder() : null;
            } else {
              rfidsBuilder_.addAllMessages(other.rfids_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.parser(),
                        extensionRegistry);
                if (rfidsBuilder_ == null) {
                  ensureRfidsIsMutable();
                  rfids_.add(m);
                } else {
                  rfidsBuilder_.addMessage(m);
                }
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_ =
        java.util.Collections.emptyList();
      private void ensureRfidsIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          rfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid>(rfids_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> rfidsBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
        if (rfidsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rfids_);
        } else {
          return rfidsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getRfidsCount() {
        if (rfidsBuilder_ == null) {
          return rfids_.size();
        } else {
          return rfidsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);
        } else {
          return rfidsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.set(index, value);
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.set(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(index, value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllRfids(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> values) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rfids_);
          onChanged();
        } else {
          rfidsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearRfids() {
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          rfidsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeRfids(int index) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.remove(index);
          onChanged();
        } else {
          rfidsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder getRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
          int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);  } else {
          return rfidsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
           getRfidsOrBuilderList() {
        if (rfidsBuilder_ != null) {
          return rfidsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rfids_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder() {
        return getRfidsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder> 
           getRfidsBuilderList() {
        return getRfidsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
          getRfidsFieldBuilder() {
        if (rfidsBuilder_ == null) {
          rfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder>(
                  rfids_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          rfids_ = null;
        }
        return rfidsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddRfidsTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddRfidsTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddCodesTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddCodesTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> 
        getCodesList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getCodesCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача на добавление кодов на устройство.
   * Очередь key.device.add_codes
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.AddCodesTask}
   */
  public static final class AddCodesTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddCodesTask)
      AddCodesTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddCodesTask.newBuilder() to construct.
    private AddCodesTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddCodesTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      codes_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CODES_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
      return codes_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList() {
      return codes_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getCodesCount() {
      return codes_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
      return codes_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index) {
      return codes_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        output.writeMessage(7, codes_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, codes_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getCodesList()
          .equals(other.getCodesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getCodesCount() > 0) {
        hash = (37 * hash) + CODES_FIELD_NUMBER;
        hash = (53 * hash) + getCodesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на добавление кодов на устройство.
     * Очередь key.device.add_codes
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddCodesTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddCodesTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
        } else {
          codes_ = null;
          codesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask result) {
        if (codesBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            codes_ = java.util.Collections.unmodifiableList(codes_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.codes_ = codes_;
        } else {
          result.codes_ = codesBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (codesBuilder_ == null) {
          if (!other.codes_.isEmpty()) {
            if (codes_.isEmpty()) {
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureCodesIsMutable();
              codes_.addAll(other.codes_);
            }
            onChanged();
          }
        } else {
          if (!other.codes_.isEmpty()) {
            if (codesBuilder_.isEmpty()) {
              codesBuilder_.dispose();
              codesBuilder_ = null;
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000040);
              codesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCodesFieldBuilder() : null;
            } else {
              codesBuilder_.addAllMessages(other.codes_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.parser(),
                        extensionRegistry);
                if (codesBuilder_ == null) {
                  ensureCodesIsMutable();
                  codes_.add(m);
                } else {
                  codesBuilder_.addMessage(m);
                }
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_ =
        java.util.Collections.emptyList();
      private void ensureCodesIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          codes_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code>(codes_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> codesBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
        if (codesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(codes_);
        } else {
          return codesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getCodesCount() {
        if (codesBuilder_ == null) {
          return codes_.size();
        } else {
          return codesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);
        } else {
          return codesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.set(index, value);
          onChanged();
        } else {
          codesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.set(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(value);
          onChanged();
        } else {
          codesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(index, value);
          onChanged();
        } else {
          codesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllCodes(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> values) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, codes_);
          onChanged();
        } else {
          codesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearCodes() {
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          codesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeCodes(int index) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.remove(index);
          onChanged();
        } else {
          codesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder getCodesBuilder(
          int index) {
        return getCodesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
          int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);  } else {
          return codesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
           getCodesOrBuilderList() {
        if (codesBuilder_ != null) {
          return codesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(codes_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder() {
        return getCodesFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder(
          int index) {
        return getCodesFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder> 
           getCodesBuilderList() {
        return getCodesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
          getCodesFieldBuilder() {
        if (codesBuilder_ == null) {
          codesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder>(
                  codes_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          codes_ = null;
        }
        return codesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddCodesTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddCodesTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddRfidsSuccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddRfidsSuccessTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> 
        getRfidsList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getRfidsCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на успешное на добавление ключей на устройство.
   * Очередь key.device.add_rfids_success
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.AddRfidsSuccessTask}
   */
  public static final class AddRfidsSuccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddRfidsSuccessTask)
      AddRfidsSuccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddRfidsSuccessTask.newBuilder() to construct.
    private AddRfidsSuccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddRfidsSuccessTask() {
      requestId_ = "";
      rfids_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsSuccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsSuccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RFIDS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getRfidsCount() {
      return rfids_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
      return rfids_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index) {
      return rfids_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        output.writeMessage(3, rfids_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, rfids_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getRfidsList()
          .equals(other.getRfidsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getRfidsCount() > 0) {
        hash = (37 * hash) + RFIDS_FIELD_NUMBER;
        hash = (53 * hash) + getRfidsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на успешное на добавление ключей на устройство.
     * Очередь key.device.add_rfids_success
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddRfidsSuccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddRfidsSuccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsSuccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsSuccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
        } else {
          rfids_ = null;
          rfidsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsSuccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask result) {
        if (rfidsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            rfids_ = java.util.Collections.unmodifiableList(rfids_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.rfids_ = rfids_;
        } else {
          result.rfids_ = rfidsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (rfidsBuilder_ == null) {
          if (!other.rfids_.isEmpty()) {
            if (rfids_.isEmpty()) {
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureRfidsIsMutable();
              rfids_.addAll(other.rfids_);
            }
            onChanged();
          }
        } else {
          if (!other.rfids_.isEmpty()) {
            if (rfidsBuilder_.isEmpty()) {
              rfidsBuilder_.dispose();
              rfidsBuilder_ = null;
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000004);
              rfidsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRfidsFieldBuilder() : null;
            } else {
              rfidsBuilder_.addAllMessages(other.rfids_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.parser(),
                        extensionRegistry);
                if (rfidsBuilder_ == null) {
                  ensureRfidsIsMutable();
                  rfids_.add(m);
                } else {
                  rfidsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_ =
        java.util.Collections.emptyList();
      private void ensureRfidsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          rfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid>(rfids_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> rfidsBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
        if (rfidsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rfids_);
        } else {
          return rfidsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getRfidsCount() {
        if (rfidsBuilder_ == null) {
          return rfids_.size();
        } else {
          return rfidsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);
        } else {
          return rfidsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.set(index, value);
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.set(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(index, value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllRfids(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> values) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rfids_);
          onChanged();
        } else {
          rfidsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearRfids() {
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          rfidsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeRfids(int index) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.remove(index);
          onChanged();
        } else {
          rfidsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder getRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
          int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);  } else {
          return rfidsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
           getRfidsOrBuilderList() {
        if (rfidsBuilder_ != null) {
          return rfidsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rfids_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder() {
        return getRfidsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder> 
           getRfidsBuilderList() {
        return getRfidsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
          getRfidsFieldBuilder() {
        if (rfidsBuilder_ == null) {
          rfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder>(
                  rfids_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          rfids_ = null;
        }
        return rfidsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddRfidsSuccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddRfidsSuccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsSuccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddRfidsFailTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddRfidsFailTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> 
        getRfidErrorsList();
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getRfidErrors(int index);
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getRfidErrorsCount();
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
        getRfidErrorsOrBuilderList();
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getRfidErrorsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на неуспешное на добавление ключей на устройство.
   * Очередь key.device.add_rfids_fail
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.AddRfidsFailTask}
   */
  public static final class AddRfidsFailTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddRfidsFailTask)
      AddRfidsFailTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddRfidsFailTask.newBuilder() to construct.
    private AddRfidsFailTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddRfidsFailTask() {
      requestId_ = "";
      rfidErrors_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsFailTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsFailTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RFID_ERRORS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> rfidErrors_;
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> getRfidErrorsList() {
      return rfidErrors_;
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
        getRfidErrorsOrBuilderList() {
      return rfidErrors_;
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getRfidErrorsCount() {
      return rfidErrors_.size();
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getRfidErrors(int index) {
      return rfidErrors_.get(index);
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getRfidErrorsOrBuilder(
        int index) {
      return rfidErrors_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < rfidErrors_.size(); i++) {
        output.writeMessage(3, rfidErrors_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < rfidErrors_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, rfidErrors_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getRfidErrorsList()
          .equals(other.getRfidErrorsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getRfidErrorsCount() > 0) {
        hash = (37 * hash) + RFID_ERRORS_FIELD_NUMBER;
        hash = (53 * hash) + getRfidErrorsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на неуспешное на добавление ключей на устройство.
     * Очередь key.device.add_rfids_fail
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddRfidsFailTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddRfidsFailTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsFailTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsFailTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (rfidErrorsBuilder_ == null) {
          rfidErrors_ = java.util.Collections.emptyList();
        } else {
          rfidErrors_ = null;
          rfidErrorsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddRfidsFailTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask result) {
        if (rfidErrorsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            rfidErrors_ = java.util.Collections.unmodifiableList(rfidErrors_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.rfidErrors_ = rfidErrors_;
        } else {
          result.rfidErrors_ = rfidErrorsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (rfidErrorsBuilder_ == null) {
          if (!other.rfidErrors_.isEmpty()) {
            if (rfidErrors_.isEmpty()) {
              rfidErrors_ = other.rfidErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureRfidErrorsIsMutable();
              rfidErrors_.addAll(other.rfidErrors_);
            }
            onChanged();
          }
        } else {
          if (!other.rfidErrors_.isEmpty()) {
            if (rfidErrorsBuilder_.isEmpty()) {
              rfidErrorsBuilder_.dispose();
              rfidErrorsBuilder_ = null;
              rfidErrors_ = other.rfidErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
              rfidErrorsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRfidErrorsFieldBuilder() : null;
            } else {
              rfidErrorsBuilder_.addAllMessages(other.rfidErrors_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.parser(),
                        extensionRegistry);
                if (rfidErrorsBuilder_ == null) {
                  ensureRfidErrorsIsMutable();
                  rfidErrors_.add(m);
                } else {
                  rfidErrorsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> rfidErrors_ =
        java.util.Collections.emptyList();
      private void ensureRfidErrorsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          rfidErrors_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError>(rfidErrors_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> rfidErrorsBuilder_;

      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> getRfidErrorsList() {
        if (rfidErrorsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rfidErrors_);
        } else {
          return rfidErrorsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getRfidErrorsCount() {
        if (rfidErrorsBuilder_ == null) {
          return rfidErrors_.size();
        } else {
          return rfidErrorsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getRfidErrors(int index) {
        if (rfidErrorsBuilder_ == null) {
          return rfidErrors_.get(index);
        } else {
          return rfidErrorsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
        if (rfidErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidErrorsIsMutable();
          rfidErrors_.set(index, value);
          onChanged();
        } else {
          rfidErrorsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.set(index, builderForValue.build());
          onChanged();
        } else {
          rfidErrorsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
        if (rfidErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(value);
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
        if (rfidErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(index, value);
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(builderForValue.build());
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(index, builderForValue.build());
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllRfidErrors(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> values) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rfidErrors_);
          onChanged();
        } else {
          rfidErrorsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearRfidErrors() {
        if (rfidErrorsBuilder_ == null) {
          rfidErrors_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          rfidErrorsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeRfidErrors(int index) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.remove(index);
          onChanged();
        } else {
          rfidErrorsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder getRfidErrorsBuilder(
          int index) {
        return getRfidErrorsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getRfidErrorsOrBuilder(
          int index) {
        if (rfidErrorsBuilder_ == null) {
          return rfidErrors_.get(index);  } else {
          return rfidErrorsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
           getRfidErrorsOrBuilderList() {
        if (rfidErrorsBuilder_ != null) {
          return rfidErrorsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rfidErrors_);
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder addRfidErrorsBuilder() {
        return getRfidErrorsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder addRfidErrorsBuilder(
          int index) {
        return getRfidErrorsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder> 
           getRfidErrorsBuilderList() {
        return getRfidErrorsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
          getRfidErrorsFieldBuilder() {
        if (rfidErrorsBuilder_ == null) {
          rfidErrorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder>(
                  rfidErrors_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          rfidErrors_ = null;
        }
        return rfidErrorsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddRfidsFailTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddRfidsFailTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddRfidsFailTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddCodesSuccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddCodesSuccessTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> 
        getCodesList();
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index);
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getCodesCount();
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList();
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на успешное на добавление кодов на устройство.
   * Очередь key.device.add_codes_success
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.AddCodesSuccessTask}
   */
  public static final class AddCodesSuccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddCodesSuccessTask)
      AddCodesSuccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddCodesSuccessTask.newBuilder() to construct.
    private AddCodesSuccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddCodesSuccessTask() {
      requestId_ = "";
      codes_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesSuccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesSuccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CODES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_;
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
      return codes_;
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList() {
      return codes_;
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getCodesCount() {
      return codes_.size();
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
      return codes_.get(index);
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index) {
      return codes_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        output.writeMessage(3, codes_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, codes_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getCodesList()
          .equals(other.getCodesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getCodesCount() > 0) {
        hash = (37 * hash) + CODES_FIELD_NUMBER;
        hash = (53 * hash) + getCodesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на успешное на добавление кодов на устройство.
     * Очередь key.device.add_codes_success
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddCodesSuccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddCodesSuccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesSuccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesSuccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
        } else {
          codes_ = null;
          codesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesSuccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask result) {
        if (codesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            codes_ = java.util.Collections.unmodifiableList(codes_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.codes_ = codes_;
        } else {
          result.codes_ = codesBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (codesBuilder_ == null) {
          if (!other.codes_.isEmpty()) {
            if (codes_.isEmpty()) {
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureCodesIsMutable();
              codes_.addAll(other.codes_);
            }
            onChanged();
          }
        } else {
          if (!other.codes_.isEmpty()) {
            if (codesBuilder_.isEmpty()) {
              codesBuilder_.dispose();
              codesBuilder_ = null;
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000004);
              codesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCodesFieldBuilder() : null;
            } else {
              codesBuilder_.addAllMessages(other.codes_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.parser(),
                        extensionRegistry);
                if (codesBuilder_ == null) {
                  ensureCodesIsMutable();
                  codes_.add(m);
                } else {
                  codesBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_ =
        java.util.Collections.emptyList();
      private void ensureCodesIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          codes_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code>(codes_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> codesBuilder_;

      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
        if (codesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(codes_);
        } else {
          return codesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getCodesCount() {
        if (codesBuilder_ == null) {
          return codes_.size();
        } else {
          return codesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);
        } else {
          return codesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.set(index, value);
          onChanged();
        } else {
          codesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.set(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(value);
          onChanged();
        } else {
          codesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(index, value);
          onChanged();
        } else {
          codesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllCodes(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> values) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, codes_);
          onChanged();
        } else {
          codesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearCodes() {
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          codesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeCodes(int index) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.remove(index);
          onChanged();
        } else {
          codesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder getCodesBuilder(
          int index) {
        return getCodesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
          int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);  } else {
          return codesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
           getCodesOrBuilderList() {
        if (codesBuilder_ != null) {
          return codesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(codes_);
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder() {
        return getCodesFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder(
          int index) {
        return getCodesFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder> 
           getCodesBuilderList() {
        return getCodesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
          getCodesFieldBuilder() {
        if (codesBuilder_ == null) {
          codesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder>(
                  codes_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          codes_ = null;
        }
        return codesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddCodesSuccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddCodesSuccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesSuccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddCodesFailTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.AddCodesFailTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> 
        getCodeErrorsList();
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getCodeErrors(int index);
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getCodeErrorsCount();
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
        getCodeErrorsOrBuilderList();
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getCodeErrorsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на неуспешное на добавление кодов на устройство.
   * Очередь key.device.add_codes_fail
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.AddCodesFailTask}
   */
  public static final class AddCodesFailTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.AddCodesFailTask)
      AddCodesFailTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddCodesFailTask.newBuilder() to construct.
    private AddCodesFailTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddCodesFailTask() {
      requestId_ = "";
      codeErrors_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesFailTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesFailTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CODE_ERRORS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> codeErrors_;
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> getCodeErrorsList() {
      return codeErrors_;
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
        getCodeErrorsOrBuilderList() {
      return codeErrors_;
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getCodeErrorsCount() {
      return codeErrors_.size();
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getCodeErrors(int index) {
      return codeErrors_.get(index);
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getCodeErrorsOrBuilder(
        int index) {
      return codeErrors_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < codeErrors_.size(); i++) {
        output.writeMessage(3, codeErrors_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < codeErrors_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, codeErrors_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getCodeErrorsList()
          .equals(other.getCodeErrorsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getCodeErrorsCount() > 0) {
        hash = (37 * hash) + CODE_ERRORS_FIELD_NUMBER;
        hash = (53 * hash) + getCodeErrorsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на неуспешное на добавление кодов на устройство.
     * Очередь key.device.add_codes_fail
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.AddCodesFailTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.AddCodesFailTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesFailTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesFailTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (codeErrorsBuilder_ == null) {
          codeErrors_ = java.util.Collections.emptyList();
        } else {
          codeErrors_ = null;
          codeErrorsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_AddCodesFailTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask result) {
        if (codeErrorsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            codeErrors_ = java.util.Collections.unmodifiableList(codeErrors_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.codeErrors_ = codeErrors_;
        } else {
          result.codeErrors_ = codeErrorsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (codeErrorsBuilder_ == null) {
          if (!other.codeErrors_.isEmpty()) {
            if (codeErrors_.isEmpty()) {
              codeErrors_ = other.codeErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureCodeErrorsIsMutable();
              codeErrors_.addAll(other.codeErrors_);
            }
            onChanged();
          }
        } else {
          if (!other.codeErrors_.isEmpty()) {
            if (codeErrorsBuilder_.isEmpty()) {
              codeErrorsBuilder_.dispose();
              codeErrorsBuilder_ = null;
              codeErrors_ = other.codeErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
              codeErrorsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCodeErrorsFieldBuilder() : null;
            } else {
              codeErrorsBuilder_.addAllMessages(other.codeErrors_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.parser(),
                        extensionRegistry);
                if (codeErrorsBuilder_ == null) {
                  ensureCodeErrorsIsMutable();
                  codeErrors_.add(m);
                } else {
                  codeErrorsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> codeErrors_ =
        java.util.Collections.emptyList();
      private void ensureCodeErrorsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          codeErrors_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError>(codeErrors_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> codeErrorsBuilder_;

      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> getCodeErrorsList() {
        if (codeErrorsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(codeErrors_);
        } else {
          return codeErrorsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getCodeErrorsCount() {
        if (codeErrorsBuilder_ == null) {
          return codeErrors_.size();
        } else {
          return codeErrorsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getCodeErrors(int index) {
        if (codeErrorsBuilder_ == null) {
          return codeErrors_.get(index);
        } else {
          return codeErrorsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
        if (codeErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodeErrorsIsMutable();
          codeErrors_.set(index, value);
          onChanged();
        } else {
          codeErrorsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.set(index, builderForValue.build());
          onChanged();
        } else {
          codeErrorsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
        if (codeErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodeErrorsIsMutable();
          codeErrors_.add(value);
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
        if (codeErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodeErrorsIsMutable();
          codeErrors_.add(index, value);
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.add(builderForValue.build());
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.add(index, builderForValue.build());
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllCodeErrors(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> values) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, codeErrors_);
          onChanged();
        } else {
          codeErrorsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearCodeErrors() {
        if (codeErrorsBuilder_ == null) {
          codeErrors_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          codeErrorsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeCodeErrors(int index) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.remove(index);
          onChanged();
        } else {
          codeErrorsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder getCodeErrorsBuilder(
          int index) {
        return getCodeErrorsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getCodeErrorsOrBuilder(
          int index) {
        if (codeErrorsBuilder_ == null) {
          return codeErrors_.get(index);  } else {
          return codeErrorsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
           getCodeErrorsOrBuilderList() {
        if (codeErrorsBuilder_ != null) {
          return codeErrorsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(codeErrors_);
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder addCodeErrorsBuilder() {
        return getCodeErrorsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder addCodeErrorsBuilder(
          int index) {
        return getCodeErrorsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder> 
           getCodeErrorsBuilderList() {
        return getCodeErrorsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
          getCodeErrorsFieldBuilder() {
        if (codeErrorsBuilder_ == null) {
          codeErrorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder>(
                  codeErrors_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          codeErrors_ = null;
        }
        return codeErrorsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.AddCodesFailTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.AddCodesFailTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.AddCodesFailTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteSl3RfidsTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteSl3RfidsTask)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid> 
        getSl3RfidsList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid getSl3Rfids(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getSl3RfidsCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder> 
        getSl3RfidsOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder getSl3RfidsOrBuilder(
        int index);

    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return Whether the isAnswerUnnecessary field is set.
     */
    boolean hasIsAnswerUnnecessary();
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return The isAnswerUnnecessary.
     */
    com.google.protobuf.BoolValue getIsAnswerUnnecessary();
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     */
    com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder();
  }
  /**
   * <pre>
   * Задача на удаление Sl3 ключей с устройства.
   * Очередь key.device.delete_sl3_rfids
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteSl3RfidsTask}
   */
  public static final class DeleteSl3RfidsTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteSl3RfidsTask)
      DeleteSl3RfidsTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteSl3RfidsTask.newBuilder() to construct.
    private DeleteSl3RfidsTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteSl3RfidsTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      sl3Rfids_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Builder.class);
    }

    public interface Sl3RfidOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      int getId();

      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      java.lang.String getRoomNumber();
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      com.google.protobuf.ByteString
          getRoomNumberBytes();

      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The key.
       */
      java.lang.String getKey();
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for key.
       */
      com.google.protobuf.ByteString
          getKeyBytes();

      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The keySecret.
       */
      java.lang.String getKeySecret();
      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for keySecret.
       */
      com.google.protobuf.ByteString
          getKeySecretBytes();
    }
    /**
     * <pre>
     * Ключ sl3
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid}
     */
    public static final class Sl3Rfid extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid)
        Sl3RfidOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Sl3Rfid.newBuilder() to construct.
      private Sl3Rfid(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Sl3Rfid() {
        roomNumber_ = "";
        key_ = "";
        keySecret_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      private int id_ = 0;
      /**
       * <pre>
       * Идентификатор ключа
       * </pre>
       *
       * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }

      public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object roomNumber_ = "";
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      @java.lang.Override
      public java.lang.String getRoomNumber() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          roomNumber_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Номер помещения к которому прявязан ключ
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        java.lang.Object ref = roomNumber_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          roomNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int KEY_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private volatile java.lang.Object key_ = "";
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The key.
       */
      @java.lang.Override
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          key_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Значение ключа
       * </pre>
       *
       * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for key.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int KEY_SECRET_FIELD_NUMBER = 4;
      @SuppressWarnings("serial")
      private volatile java.lang.Object keySecret_ = "";
      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The keySecret.
       */
      @java.lang.Override
      public java.lang.String getKeySecret() {
        java.lang.Object ref = keySecret_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          keySecret_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Секрет
       * </pre>
       *
       * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for keySecret.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKeySecretBytes() {
        java.lang.Object ref = keySecret_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          keySecret_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        if (id_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, id_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(roomNumber_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, roomNumber_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, key_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(keySecret_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, keySecret_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        if (getId()
            != other.getId()) return false;
        if (!getRoomNumber()
            .equals(other.getRoomNumber())) return false;
        if (!getKey()
            .equals(other.getKey())) return false;
        if (!getKeySecret()
            .equals(other.getKeySecret())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId();
        hash = (37 * hash) + ROOM_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getRoomNumber().hashCode();
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
        hash = (37 * hash) + KEY_SECRET_FIELD_NUMBER;
        hash = (53 * hash) + getKeySecret().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

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

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

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ключ sl3
       * </pre>
       *
       * Protobuf type {@code keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid)
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder.class);
        }

        // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.newBuilder()
        private Builder() {

        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid getDefaultInstanceForType() {
          return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid build() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid buildPartial() {
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.id_ = id_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.roomNumber_ = roomNumber_;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.key_ = key_;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.keySecret_ = keySecret_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid) {
            return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid other) {
          if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.getDefaultInstance()) return this;
          if (other.getId() != 0) {
            setId(other.getId());
          }
          if (!other.getRoomNumber().isEmpty()) {
            roomNumber_ = other.roomNumber_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (!other.getKey().isEmpty()) {
            key_ = other.key_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (!other.getKeySecret().isEmpty()) {
            keySecret_ = other.keySecret_;
            bitField0_ |= 0x00000008;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private int id_ ;
        /**
         * <pre>
         * Идентификатор ключа
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return id_;
        }
        /**
         * <pre>
         * Идентификатор ключа
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {

          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Идентификатор ключа
         * </pre>
         *
         * <code>int32 id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object roomNumber_ = "";
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The roomNumber.
         */
        public java.lang.String getRoomNumber() {
          java.lang.Object ref = roomNumber_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            roomNumber_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for roomNumber.
         */
        public com.google.protobuf.ByteString
            getRoomNumberBytes() {
          java.lang.Object ref = roomNumber_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            roomNumber_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumber(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearRoomNumber() {
          roomNumber_ = getDefaultInstance().getRoomNumber();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Номер помещения к которому прявязан ключ
         * </pre>
         *
         * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for roomNumber to set.
         * @return This builder for chaining.
         */
        public Builder setRoomNumberBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          roomNumber_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }

        private java.lang.Object key_ = "";
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The key.
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for key.
         */
        public com.google.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The key to set.
         * @return This builder for chaining.
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          key_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          key_ = getDefaultInstance().getKey();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Значение ключа
         * </pre>
         *
         * <code>string key = 3 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for key to set.
         * @return This builder for chaining.
         */
        public Builder setKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          key_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }

        private java.lang.Object keySecret_ = "";
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The keySecret.
         */
        public java.lang.String getKeySecret() {
          java.lang.Object ref = keySecret_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            keySecret_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return The bytes for keySecret.
         */
        public com.google.protobuf.ByteString
            getKeySecretBytes() {
          java.lang.Object ref = keySecret_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            keySecret_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The keySecret to set.
         * @return This builder for chaining.
         */
        public Builder setKeySecret(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          keySecret_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @return This builder for chaining.
         */
        public Builder clearKeySecret() {
          keySecret_ = getDefaultInstance().getKeySecret();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Секрет
         * </pre>
         *
         * <code>string key_secret = 4 [(.google.api.field_behavior) = REQUIRED];</code>
         * @param value The bytes for keySecret to set.
         * @return This builder for chaining.
         */
        public Builder setKeySecretBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          keySecret_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid)
      }

      // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid)
      private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid();
      }

      public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int SL3_RFIDS_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid> sl3Rfids_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid> getSl3RfidsList() {
      return sl3Rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder> 
        getSl3RfidsOrBuilderList() {
      return sl3Rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getSl3RfidsCount() {
      return sl3Rfids_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid getSl3Rfids(int index) {
      return sl3Rfids_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder getSl3RfidsOrBuilder(
        int index) {
      return sl3Rfids_.get(index);
    }

    public static final int IS_ANSWER_UNNECESSARY_FIELD_NUMBER = 8;
    private com.google.protobuf.BoolValue isAnswerUnnecessary_;
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return Whether the isAnswerUnnecessary field is set.
     */
    @java.lang.Override
    public boolean hasIsAnswerUnnecessary() {
      return isAnswerUnnecessary_ != null;
    }
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return The isAnswerUnnecessary.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getIsAnswerUnnecessary() {
      return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
    }
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder() {
      return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      for (int i = 0; i < sl3Rfids_.size(); i++) {
        output.writeMessage(7, sl3Rfids_.get(i));
      }
      if (isAnswerUnnecessary_ != null) {
        output.writeMessage(8, getIsAnswerUnnecessary());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      for (int i = 0; i < sl3Rfids_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, sl3Rfids_.get(i));
      }
      if (isAnswerUnnecessary_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getIsAnswerUnnecessary());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getSl3RfidsList()
          .equals(other.getSl3RfidsList())) return false;
      if (hasIsAnswerUnnecessary() != other.hasIsAnswerUnnecessary()) return false;
      if (hasIsAnswerUnnecessary()) {
        if (!getIsAnswerUnnecessary()
            .equals(other.getIsAnswerUnnecessary())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getSl3RfidsCount() > 0) {
        hash = (37 * hash) + SL3_RFIDS_FIELD_NUMBER;
        hash = (53 * hash) + getSl3RfidsList().hashCode();
      }
      if (hasIsAnswerUnnecessary()) {
        hash = (37 * hash) + IS_ANSWER_UNNECESSARY_FIELD_NUMBER;
        hash = (53 * hash) + getIsAnswerUnnecessary().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на удаление Sl3 ключей с устройства.
     * Очередь key.device.delete_sl3_rfids
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteSl3RfidsTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteSl3RfidsTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        if (sl3RfidsBuilder_ == null) {
          sl3Rfids_ = java.util.Collections.emptyList();
        } else {
          sl3Rfids_ = null;
          sl3RfidsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        isAnswerUnnecessary_ = null;
        if (isAnswerUnnecessaryBuilder_ != null) {
          isAnswerUnnecessaryBuilder_.dispose();
          isAnswerUnnecessaryBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSl3RfidsTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.getDefaultInstance();
      }

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

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask result) {
        if (sl3RfidsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            sl3Rfids_ = java.util.Collections.unmodifiableList(sl3Rfids_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.sl3Rfids_ = sl3Rfids_;
        } else {
          result.sl3Rfids_ = sl3RfidsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.isAnswerUnnecessary_ = isAnswerUnnecessaryBuilder_ == null
              ? isAnswerUnnecessary_
              : isAnswerUnnecessaryBuilder_.build();
        }
      }

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

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (sl3RfidsBuilder_ == null) {
          if (!other.sl3Rfids_.isEmpty()) {
            if (sl3Rfids_.isEmpty()) {
              sl3Rfids_ = other.sl3Rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureSl3RfidsIsMutable();
              sl3Rfids_.addAll(other.sl3Rfids_);
            }
            onChanged();
          }
        } else {
          if (!other.sl3Rfids_.isEmpty()) {
            if (sl3RfidsBuilder_.isEmpty()) {
              sl3RfidsBuilder_.dispose();
              sl3RfidsBuilder_ = null;
              sl3Rfids_ = other.sl3Rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
              sl3RfidsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSl3RfidsFieldBuilder() : null;
            } else {
              sl3RfidsBuilder_.addAllMessages(other.sl3Rfids_);
            }
          }
        }
        if (other.hasIsAnswerUnnecessary()) {
          mergeIsAnswerUnnecessary(other.getIsAnswerUnnecessary());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.parser(),
                        extensionRegistry);
                if (sl3RfidsBuilder_ == null) {
                  ensureSl3RfidsIsMutable();
                  sl3Rfids_.add(m);
                } else {
                  sl3RfidsBuilder_.addMessage(m);
                }
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getIsAnswerUnnecessaryFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid> sl3Rfids_ =
        java.util.Collections.emptyList();
      private void ensureSl3RfidsIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          sl3Rfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid>(sl3Rfids_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder> sl3RfidsBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid> getSl3RfidsList() {
        if (sl3RfidsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sl3Rfids_);
        } else {
          return sl3RfidsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getSl3RfidsCount() {
        if (sl3RfidsBuilder_ == null) {
          return sl3Rfids_.size();
        } else {
          return sl3RfidsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid getSl3Rfids(int index) {
        if (sl3RfidsBuilder_ == null) {
          return sl3Rfids_.get(index);
        } else {
          return sl3RfidsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid value) {
        if (sl3RfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSl3RfidsIsMutable();
          sl3Rfids_.set(index, value);
          onChanged();
        } else {
          sl3RfidsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder builderForValue) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.set(index, builderForValue.build());
          onChanged();
        } else {
          sl3RfidsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid value) {
        if (sl3RfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(value);
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid value) {
        if (sl3RfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(index, value);
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder builderForValue) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(builderForValue.build());
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addSl3Rfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder builderForValue) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.add(index, builderForValue.build());
          onChanged();
        } else {
          sl3RfidsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllSl3Rfids(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid> values) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sl3Rfids_);
          onChanged();
        } else {
          sl3RfidsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearSl3Rfids() {
        if (sl3RfidsBuilder_ == null) {
          sl3Rfids_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          sl3RfidsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeSl3Rfids(int index) {
        if (sl3RfidsBuilder_ == null) {
          ensureSl3RfidsIsMutable();
          sl3Rfids_.remove(index);
          onChanged();
        } else {
          sl3RfidsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder getSl3RfidsBuilder(
          int index) {
        return getSl3RfidsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder getSl3RfidsOrBuilder(
          int index) {
        if (sl3RfidsBuilder_ == null) {
          return sl3Rfids_.get(index);  } else {
          return sl3RfidsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder> 
           getSl3RfidsOrBuilderList() {
        if (sl3RfidsBuilder_ != null) {
          return sl3RfidsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sl3Rfids_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder addSl3RfidsBuilder() {
        return getSl3RfidsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder addSl3RfidsBuilder(
          int index) {
        return getSl3RfidsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.DeleteSl3RfidsTask.Sl3Rfid sl3_rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder> 
           getSl3RfidsBuilderList() {
        return getSl3RfidsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder> 
          getSl3RfidsFieldBuilder() {
        if (sl3RfidsBuilder_ == null) {
          sl3RfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask.Sl3RfidOrBuilder>(
                  sl3Rfids_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          sl3Rfids_ = null;
        }
        return sl3RfidsBuilder_;
      }

      private com.google.protobuf.BoolValue isAnswerUnnecessary_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> isAnswerUnnecessaryBuilder_;
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       * @return Whether the isAnswerUnnecessary field is set.
       */
      public boolean hasIsAnswerUnnecessary() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       * @return The isAnswerUnnecessary.
       */
      public com.google.protobuf.BoolValue getIsAnswerUnnecessary() {
        if (isAnswerUnnecessaryBuilder_ == null) {
          return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
        } else {
          return isAnswerUnnecessaryBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder setIsAnswerUnnecessary(com.google.protobuf.BoolValue value) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          isAnswerUnnecessary_ = value;
        } else {
          isAnswerUnnecessaryBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder setIsAnswerUnnecessary(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          isAnswerUnnecessary_ = builderForValue.build();
        } else {
          isAnswerUnnecessaryBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder mergeIsAnswerUnnecessary(com.google.protobuf.BoolValue value) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            isAnswerUnnecessary_ != null &&
            isAnswerUnnecessary_ != com.google.protobuf.BoolValue.getDefaultInstance()) {
            getIsAnswerUnnecessaryBuilder().mergeFrom(value);
          } else {
            isAnswerUnnecessary_ = value;
          }
        } else {
          isAnswerUnnecessaryBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder clearIsAnswerUnnecessary() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isAnswerUnnecessary_ = null;
        if (isAnswerUnnecessaryBuilder_ != null) {
          isAnswerUnnecessaryBuilder_.dispose();
          isAnswerUnnecessaryBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public com.google.protobuf.BoolValue.Builder getIsAnswerUnnecessaryBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getIsAnswerUnnecessaryFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder() {
        if (isAnswerUnnecessaryBuilder_ != null) {
          return isAnswerUnnecessaryBuilder_.getMessageOrBuilder();
        } else {
          return isAnswerUnnecessary_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
        }
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getIsAnswerUnnecessaryFieldBuilder() {
        if (isAnswerUnnecessaryBuilder_ == null) {
          isAnswerUnnecessaryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getIsAnswerUnnecessary(),
                  getParentForChildren(),
                  isClean());
          isAnswerUnnecessary_ = null;
        }
        return isAnswerUnnecessaryBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteSl3RfidsTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteSl3RfidsTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSl3RfidsTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteRfidsTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteRfidsTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> 
        getRfidsList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getRfidsCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index);

    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return Whether the isAnswerUnnecessary field is set.
     */
    boolean hasIsAnswerUnnecessary();
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return The isAnswerUnnecessary.
     */
    com.google.protobuf.BoolValue getIsAnswerUnnecessary();
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     */
    com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder();
  }
  /**
   * <pre>
   * Задача на удаление ключей с устройства.
   * Очередь key.device.delete_rfids
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteRfidsTask}
   */
  public static final class DeleteRfidsTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteRfidsTask)
      DeleteRfidsTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteRfidsTask.newBuilder() to construct.
    private DeleteRfidsTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteRfidsTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      rfids_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteRfidsTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RFIDS_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getRfidsCount() {
      return rfids_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
      return rfids_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index) {
      return rfids_.get(index);
    }

    public static final int IS_ANSWER_UNNECESSARY_FIELD_NUMBER = 8;
    private com.google.protobuf.BoolValue isAnswerUnnecessary_;
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return Whether the isAnswerUnnecessary field is set.
     */
    @java.lang.Override
    public boolean hasIsAnswerUnnecessary() {
      return isAnswerUnnecessary_ != null;
    }
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return The isAnswerUnnecessary.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getIsAnswerUnnecessary() {
      return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
    }
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder() {
      return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        output.writeMessage(7, rfids_.get(i));
      }
      if (isAnswerUnnecessary_ != null) {
        output.writeMessage(8, getIsAnswerUnnecessary());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, rfids_.get(i));
      }
      if (isAnswerUnnecessary_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getIsAnswerUnnecessary());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getRfidsList()
          .equals(other.getRfidsList())) return false;
      if (hasIsAnswerUnnecessary() != other.hasIsAnswerUnnecessary()) return false;
      if (hasIsAnswerUnnecessary()) {
        if (!getIsAnswerUnnecessary()
            .equals(other.getIsAnswerUnnecessary())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getRfidsCount() > 0) {
        hash = (37 * hash) + RFIDS_FIELD_NUMBER;
        hash = (53 * hash) + getRfidsList().hashCode();
      }
      if (hasIsAnswerUnnecessary()) {
        hash = (37 * hash) + IS_ANSWER_UNNECESSARY_FIELD_NUMBER;
        hash = (53 * hash) + getIsAnswerUnnecessary().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на удаление ключей с устройства.
     * Очередь key.device.delete_rfids
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteRfidsTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteRfidsTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
        } else {
          rfids_ = null;
          rfidsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        isAnswerUnnecessary_ = null;
        if (isAnswerUnnecessaryBuilder_ != null) {
          isAnswerUnnecessaryBuilder_.dispose();
          isAnswerUnnecessaryBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask result) {
        if (rfidsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            rfids_ = java.util.Collections.unmodifiableList(rfids_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.rfids_ = rfids_;
        } else {
          result.rfids_ = rfidsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.isAnswerUnnecessary_ = isAnswerUnnecessaryBuilder_ == null
              ? isAnswerUnnecessary_
              : isAnswerUnnecessaryBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (rfidsBuilder_ == null) {
          if (!other.rfids_.isEmpty()) {
            if (rfids_.isEmpty()) {
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureRfidsIsMutable();
              rfids_.addAll(other.rfids_);
            }
            onChanged();
          }
        } else {
          if (!other.rfids_.isEmpty()) {
            if (rfidsBuilder_.isEmpty()) {
              rfidsBuilder_.dispose();
              rfidsBuilder_ = null;
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000040);
              rfidsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRfidsFieldBuilder() : null;
            } else {
              rfidsBuilder_.addAllMessages(other.rfids_);
            }
          }
        }
        if (other.hasIsAnswerUnnecessary()) {
          mergeIsAnswerUnnecessary(other.getIsAnswerUnnecessary());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.parser(),
                        extensionRegistry);
                if (rfidsBuilder_ == null) {
                  ensureRfidsIsMutable();
                  rfids_.add(m);
                } else {
                  rfidsBuilder_.addMessage(m);
                }
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getIsAnswerUnnecessaryFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_ =
        java.util.Collections.emptyList();
      private void ensureRfidsIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          rfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid>(rfids_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> rfidsBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
        if (rfidsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rfids_);
        } else {
          return rfidsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getRfidsCount() {
        if (rfidsBuilder_ == null) {
          return rfids_.size();
        } else {
          return rfidsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);
        } else {
          return rfidsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.set(index, value);
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.set(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(index, value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllRfids(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> values) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rfids_);
          onChanged();
        } else {
          rfidsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearRfids() {
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          rfidsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeRfids(int index) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.remove(index);
          onChanged();
        } else {
          rfidsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder getRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
          int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);  } else {
          return rfidsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
           getRfidsOrBuilderList() {
        if (rfidsBuilder_ != null) {
          return rfidsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rfids_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder() {
        return getRfidsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder> 
           getRfidsBuilderList() {
        return getRfidsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
          getRfidsFieldBuilder() {
        if (rfidsBuilder_ == null) {
          rfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder>(
                  rfids_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          rfids_ = null;
        }
        return rfidsBuilder_;
      }

      private com.google.protobuf.BoolValue isAnswerUnnecessary_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> isAnswerUnnecessaryBuilder_;
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       * @return Whether the isAnswerUnnecessary field is set.
       */
      public boolean hasIsAnswerUnnecessary() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       * @return The isAnswerUnnecessary.
       */
      public com.google.protobuf.BoolValue getIsAnswerUnnecessary() {
        if (isAnswerUnnecessaryBuilder_ == null) {
          return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
        } else {
          return isAnswerUnnecessaryBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder setIsAnswerUnnecessary(com.google.protobuf.BoolValue value) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          isAnswerUnnecessary_ = value;
        } else {
          isAnswerUnnecessaryBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder setIsAnswerUnnecessary(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          isAnswerUnnecessary_ = builderForValue.build();
        } else {
          isAnswerUnnecessaryBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder mergeIsAnswerUnnecessary(com.google.protobuf.BoolValue value) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            isAnswerUnnecessary_ != null &&
            isAnswerUnnecessary_ != com.google.protobuf.BoolValue.getDefaultInstance()) {
            getIsAnswerUnnecessaryBuilder().mergeFrom(value);
          } else {
            isAnswerUnnecessary_ = value;
          }
        } else {
          isAnswerUnnecessaryBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder clearIsAnswerUnnecessary() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isAnswerUnnecessary_ = null;
        if (isAnswerUnnecessaryBuilder_ != null) {
          isAnswerUnnecessaryBuilder_.dispose();
          isAnswerUnnecessaryBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public com.google.protobuf.BoolValue.Builder getIsAnswerUnnecessaryBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getIsAnswerUnnecessaryFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder() {
        if (isAnswerUnnecessaryBuilder_ != null) {
          return isAnswerUnnecessaryBuilder_.getMessageOrBuilder();
        } else {
          return isAnswerUnnecessary_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
        }
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getIsAnswerUnnecessaryFieldBuilder() {
        if (isAnswerUnnecessaryBuilder_ == null) {
          isAnswerUnnecessaryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getIsAnswerUnnecessary(),
                  getParentForChildren(),
                  isClean());
          isAnswerUnnecessary_ = null;
        }
        return isAnswerUnnecessaryBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteRfidsTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteRfidsTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteRfidsTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteRfidsTask>() {
      @java.lang.Override
      public DeleteRfidsTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteRfidsTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteRfidsTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteCodesTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteCodesTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> 
        getCodesList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getCodesCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index);

    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return Whether the isAnswerUnnecessary field is set.
     */
    boolean hasIsAnswerUnnecessary();
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return The isAnswerUnnecessary.
     */
    com.google.protobuf.BoolValue getIsAnswerUnnecessary();
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     */
    com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder();
  }
  /**
   * <pre>
   * Задача на удаление кодов с устройства.
   * Очередь key.device.delete_codes
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteCodesTask}
   */
  public static final class DeleteCodesTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteCodesTask)
      DeleteCodesTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteCodesTask.newBuilder() to construct.
    private DeleteCodesTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteCodesTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
      codes_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteCodesTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CODES_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
      return codes_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList() {
      return codes_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getCodesCount() {
      return codes_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
      return codes_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index) {
      return codes_.get(index);
    }

    public static final int IS_ANSWER_UNNECESSARY_FIELD_NUMBER = 8;
    private com.google.protobuf.BoolValue isAnswerUnnecessary_;
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return Whether the isAnswerUnnecessary field is set.
     */
    @java.lang.Override
    public boolean hasIsAnswerUnnecessary() {
      return isAnswerUnnecessary_ != null;
    }
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     * @return The isAnswerUnnecessary.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getIsAnswerUnnecessary() {
      return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
    }
    /**
     * <pre>
     * При передаче этого флага в true, ответное сообщение не будет получено
     * </pre>
     *
     * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder() {
      return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        output.writeMessage(7, codes_.get(i));
      }
      if (isAnswerUnnecessary_ != null) {
        output.writeMessage(8, getIsAnswerUnnecessary());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, codes_.get(i));
      }
      if (isAnswerUnnecessary_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getIsAnswerUnnecessary());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getCodesList()
          .equals(other.getCodesList())) return false;
      if (hasIsAnswerUnnecessary() != other.hasIsAnswerUnnecessary()) return false;
      if (hasIsAnswerUnnecessary()) {
        if (!getIsAnswerUnnecessary()
            .equals(other.getIsAnswerUnnecessary())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getCodesCount() > 0) {
        hash = (37 * hash) + CODES_FIELD_NUMBER;
        hash = (53 * hash) + getCodesList().hashCode();
      }
      if (hasIsAnswerUnnecessary()) {
        hash = (37 * hash) + IS_ANSWER_UNNECESSARY_FIELD_NUMBER;
        hash = (53 * hash) + getIsAnswerUnnecessary().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на удаление кодов с устройства.
     * Очередь key.device.delete_codes
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteCodesTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteCodesTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
        } else {
          codes_ = null;
          codesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        isAnswerUnnecessary_ = null;
        if (isAnswerUnnecessaryBuilder_ != null) {
          isAnswerUnnecessaryBuilder_.dispose();
          isAnswerUnnecessaryBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask result) {
        if (codesBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            codes_ = java.util.Collections.unmodifiableList(codes_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.codes_ = codes_;
        } else {
          result.codes_ = codesBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.isAnswerUnnecessary_ = isAnswerUnnecessaryBuilder_ == null
              ? isAnswerUnnecessary_
              : isAnswerUnnecessaryBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (codesBuilder_ == null) {
          if (!other.codes_.isEmpty()) {
            if (codes_.isEmpty()) {
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureCodesIsMutable();
              codes_.addAll(other.codes_);
            }
            onChanged();
          }
        } else {
          if (!other.codes_.isEmpty()) {
            if (codesBuilder_.isEmpty()) {
              codesBuilder_.dispose();
              codesBuilder_ = null;
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000040);
              codesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCodesFieldBuilder() : null;
            } else {
              codesBuilder_.addAllMessages(other.codes_);
            }
          }
        }
        if (other.hasIsAnswerUnnecessary()) {
          mergeIsAnswerUnnecessary(other.getIsAnswerUnnecessary());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.parser(),
                        extensionRegistry);
                if (codesBuilder_ == null) {
                  ensureCodesIsMutable();
                  codes_.add(m);
                } else {
                  codesBuilder_.addMessage(m);
                }
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getIsAnswerUnnecessaryFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_ =
        java.util.Collections.emptyList();
      private void ensureCodesIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          codes_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code>(codes_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> codesBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
        if (codesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(codes_);
        } else {
          return codesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getCodesCount() {
        if (codesBuilder_ == null) {
          return codes_.size();
        } else {
          return codesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);
        } else {
          return codesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.set(index, value);
          onChanged();
        } else {
          codesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.set(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(value);
          onChanged();
        } else {
          codesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(index, value);
          onChanged();
        } else {
          codesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllCodes(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> values) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, codes_);
          onChanged();
        } else {
          codesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearCodes() {
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          codesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeCodes(int index) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.remove(index);
          onChanged();
        } else {
          codesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder getCodesBuilder(
          int index) {
        return getCodesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
          int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);  } else {
          return codesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
           getCodesOrBuilderList() {
        if (codesBuilder_ != null) {
          return codesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(codes_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder() {
        return getCodesFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder(
          int index) {
        return getCodesFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 7 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder> 
           getCodesBuilderList() {
        return getCodesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
          getCodesFieldBuilder() {
        if (codesBuilder_ == null) {
          codesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder>(
                  codes_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          codes_ = null;
        }
        return codesBuilder_;
      }

      private com.google.protobuf.BoolValue isAnswerUnnecessary_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> isAnswerUnnecessaryBuilder_;
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       * @return Whether the isAnswerUnnecessary field is set.
       */
      public boolean hasIsAnswerUnnecessary() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       * @return The isAnswerUnnecessary.
       */
      public com.google.protobuf.BoolValue getIsAnswerUnnecessary() {
        if (isAnswerUnnecessaryBuilder_ == null) {
          return isAnswerUnnecessary_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
        } else {
          return isAnswerUnnecessaryBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder setIsAnswerUnnecessary(com.google.protobuf.BoolValue value) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          isAnswerUnnecessary_ = value;
        } else {
          isAnswerUnnecessaryBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder setIsAnswerUnnecessary(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          isAnswerUnnecessary_ = builderForValue.build();
        } else {
          isAnswerUnnecessaryBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder mergeIsAnswerUnnecessary(com.google.protobuf.BoolValue value) {
        if (isAnswerUnnecessaryBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            isAnswerUnnecessary_ != null &&
            isAnswerUnnecessary_ != com.google.protobuf.BoolValue.getDefaultInstance()) {
            getIsAnswerUnnecessaryBuilder().mergeFrom(value);
          } else {
            isAnswerUnnecessary_ = value;
          }
        } else {
          isAnswerUnnecessaryBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public Builder clearIsAnswerUnnecessary() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isAnswerUnnecessary_ = null;
        if (isAnswerUnnecessaryBuilder_ != null) {
          isAnswerUnnecessaryBuilder_.dispose();
          isAnswerUnnecessaryBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public com.google.protobuf.BoolValue.Builder getIsAnswerUnnecessaryBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getIsAnswerUnnecessaryFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      public com.google.protobuf.BoolValueOrBuilder getIsAnswerUnnecessaryOrBuilder() {
        if (isAnswerUnnecessaryBuilder_ != null) {
          return isAnswerUnnecessaryBuilder_.getMessageOrBuilder();
        } else {
          return isAnswerUnnecessary_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : isAnswerUnnecessary_;
        }
      }
      /**
       * <pre>
       * При передаче этого флага в true, ответное сообщение не будет получено
       * </pre>
       *
       * <code>.google.protobuf.BoolValue is_answer_unnecessary = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getIsAnswerUnnecessaryFieldBuilder() {
        if (isAnswerUnnecessaryBuilder_ == null) {
          isAnswerUnnecessaryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getIsAnswerUnnecessary(),
                  getParentForChildren(),
                  isClean());
          isAnswerUnnecessary_ = null;
        }
        return isAnswerUnnecessaryBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteCodesTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteCodesTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteCodesTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteCodesTask>() {
      @java.lang.Override
      public DeleteCodesTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteCodesTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteCodesTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteRfidsSuccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteRfidsSuccessTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> 
        getRfidsList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index);
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getRfidsCount();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList();
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на успешное удаление ключей с устройства.
   * Очередь key.device.delete_rfids_success
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteRfidsSuccessTask}
   */
  public static final class DeleteRfidsSuccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteRfidsSuccessTask)
      DeleteRfidsSuccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteRfidsSuccessTask.newBuilder() to construct.
    private DeleteRfidsSuccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteRfidsSuccessTask() {
      requestId_ = "";
      rfids_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteRfidsSuccessTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RFIDS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_;
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
        getRfidsOrBuilderList() {
      return rfids_;
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getRfidsCount() {
      return rfids_.size();
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
      return rfids_.get(index);
    }
    /**
     * <pre>
     * Ключи
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
        int index) {
      return rfids_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        output.writeMessage(3, rfids_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < rfids_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, rfids_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getRfidsList()
          .equals(other.getRfidsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getRfidsCount() > 0) {
        hash = (37 * hash) + RFIDS_FIELD_NUMBER;
        hash = (53 * hash) + getRfidsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на успешное удаление ключей с устройства.
     * Очередь key.device.delete_rfids_success
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteRfidsSuccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteRfidsSuccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
        } else {
          rfids_ = null;
          rfidsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask result) {
        if (rfidsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            rfids_ = java.util.Collections.unmodifiableList(rfids_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.rfids_ = rfids_;
        } else {
          result.rfids_ = rfidsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (rfidsBuilder_ == null) {
          if (!other.rfids_.isEmpty()) {
            if (rfids_.isEmpty()) {
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureRfidsIsMutable();
              rfids_.addAll(other.rfids_);
            }
            onChanged();
          }
        } else {
          if (!other.rfids_.isEmpty()) {
            if (rfidsBuilder_.isEmpty()) {
              rfidsBuilder_.dispose();
              rfidsBuilder_ = null;
              rfids_ = other.rfids_;
              bitField0_ = (bitField0_ & ~0x00000004);
              rfidsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRfidsFieldBuilder() : null;
            } else {
              rfidsBuilder_.addAllMessages(other.rfids_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.parser(),
                        extensionRegistry);
                if (rfidsBuilder_ == null) {
                  ensureRfidsIsMutable();
                  rfids_.add(m);
                } else {
                  rfidsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> rfids_ =
        java.util.Collections.emptyList();
      private void ensureRfidsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          rfids_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid>(rfids_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> rfidsBuilder_;

      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> getRfidsList() {
        if (rfidsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rfids_);
        } else {
          return rfidsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getRfidsCount() {
        if (rfidsBuilder_ == null) {
          return rfids_.size();
        } else {
          return rfidsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid getRfids(int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);
        } else {
          return rfidsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.set(index, value);
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.set(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid value) {
        if (rfidsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidsIsMutable();
          rfids_.add(index, value);
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfids(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder builderForValue) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.add(index, builderForValue.build());
          onChanged();
        } else {
          rfidsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllRfids(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid> values) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rfids_);
          onChanged();
        } else {
          rfidsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearRfids() {
        if (rfidsBuilder_ == null) {
          rfids_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          rfidsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeRfids(int index) {
        if (rfidsBuilder_ == null) {
          ensureRfidsIsMutable();
          rfids_.remove(index);
          onChanged();
        } else {
          rfidsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder getRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder getRfidsOrBuilder(
          int index) {
        if (rfidsBuilder_ == null) {
          return rfids_.get(index);  } else {
          return rfidsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
           getRfidsOrBuilderList() {
        if (rfidsBuilder_ != null) {
          return rfidsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rfids_);
        }
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder() {
        return getRfidsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder addRfidsBuilder(
          int index) {
        return getRfidsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.getDefaultInstance());
      }
      /**
       * <pre>
       * Ключи
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Rfid rfids = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder> 
           getRfidsBuilderList() {
        return getRfidsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder> 
          getRfidsFieldBuilder() {
        if (rfidsBuilder_ == null) {
          rfidsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Rfid.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidOrBuilder>(
                  rfids_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          rfids_ = null;
        }
        return rfidsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteRfidsSuccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteRfidsSuccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteRfidsSuccessTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteRfidsSuccessTask>() {
      @java.lang.Override
      public DeleteRfidsSuccessTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteRfidsSuccessTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteRfidsSuccessTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsSuccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteRfidsFailTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteRfidsFailTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> 
        getRfidErrorsList();
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getRfidErrors(int index);
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getRfidErrorsCount();
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
        getRfidErrorsOrBuilderList();
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getRfidErrorsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на неуспешное удаление ключей с устройства.
   * Очередь key.device.delete_rfids_fail
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteRfidsFailTask}
   */
  public static final class DeleteRfidsFailTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteRfidsFailTask)
      DeleteRfidsFailTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteRfidsFailTask.newBuilder() to construct.
    private DeleteRfidsFailTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteRfidsFailTask() {
      requestId_ = "";
      rfidErrors_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteRfidsFailTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsFailTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsFailTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RFID_ERRORS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> rfidErrors_;
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> getRfidErrorsList() {
      return rfidErrors_;
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
        getRfidErrorsOrBuilderList() {
      return rfidErrors_;
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getRfidErrorsCount() {
      return rfidErrors_.size();
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getRfidErrors(int index) {
      return rfidErrors_.get(index);
    }
    /**
     * <pre>
     * Ошибки ключей
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getRfidErrorsOrBuilder(
        int index) {
      return rfidErrors_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < rfidErrors_.size(); i++) {
        output.writeMessage(3, rfidErrors_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < rfidErrors_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, rfidErrors_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getRfidErrorsList()
          .equals(other.getRfidErrorsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getRfidErrorsCount() > 0) {
        hash = (37 * hash) + RFID_ERRORS_FIELD_NUMBER;
        hash = (53 * hash) + getRfidErrorsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на неуспешное удаление ключей с устройства.
     * Очередь key.device.delete_rfids_fail
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteRfidsFailTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteRfidsFailTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsFailTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsFailTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (rfidErrorsBuilder_ == null) {
          rfidErrors_ = java.util.Collections.emptyList();
        } else {
          rfidErrors_ = null;
          rfidErrorsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteRfidsFailTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask result) {
        if (rfidErrorsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            rfidErrors_ = java.util.Collections.unmodifiableList(rfidErrors_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.rfidErrors_ = rfidErrors_;
        } else {
          result.rfidErrors_ = rfidErrorsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (rfidErrorsBuilder_ == null) {
          if (!other.rfidErrors_.isEmpty()) {
            if (rfidErrors_.isEmpty()) {
              rfidErrors_ = other.rfidErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureRfidErrorsIsMutable();
              rfidErrors_.addAll(other.rfidErrors_);
            }
            onChanged();
          }
        } else {
          if (!other.rfidErrors_.isEmpty()) {
            if (rfidErrorsBuilder_.isEmpty()) {
              rfidErrorsBuilder_.dispose();
              rfidErrorsBuilder_ = null;
              rfidErrors_ = other.rfidErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
              rfidErrorsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRfidErrorsFieldBuilder() : null;
            } else {
              rfidErrorsBuilder_.addAllMessages(other.rfidErrors_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.parser(),
                        extensionRegistry);
                if (rfidErrorsBuilder_ == null) {
                  ensureRfidErrorsIsMutable();
                  rfidErrors_.add(m);
                } else {
                  rfidErrorsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> rfidErrors_ =
        java.util.Collections.emptyList();
      private void ensureRfidErrorsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          rfidErrors_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError>(rfidErrors_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> rfidErrorsBuilder_;

      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> getRfidErrorsList() {
        if (rfidErrorsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rfidErrors_);
        } else {
          return rfidErrorsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getRfidErrorsCount() {
        if (rfidErrorsBuilder_ == null) {
          return rfidErrors_.size();
        } else {
          return rfidErrorsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError getRfidErrors(int index) {
        if (rfidErrorsBuilder_ == null) {
          return rfidErrors_.get(index);
        } else {
          return rfidErrorsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
        if (rfidErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidErrorsIsMutable();
          rfidErrors_.set(index, value);
          onChanged();
        } else {
          rfidErrorsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.set(index, builderForValue.build());
          onChanged();
        } else {
          rfidErrorsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
        if (rfidErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(value);
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError value) {
        if (rfidErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(index, value);
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(builderForValue.build());
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addRfidErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder builderForValue) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.add(index, builderForValue.build());
          onChanged();
        } else {
          rfidErrorsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllRfidErrors(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError> values) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rfidErrors_);
          onChanged();
        } else {
          rfidErrorsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearRfidErrors() {
        if (rfidErrorsBuilder_ == null) {
          rfidErrors_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          rfidErrorsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeRfidErrors(int index) {
        if (rfidErrorsBuilder_ == null) {
          ensureRfidErrorsIsMutable();
          rfidErrors_.remove(index);
          onChanged();
        } else {
          rfidErrorsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder getRfidErrorsBuilder(
          int index) {
        return getRfidErrorsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder getRfidErrorsOrBuilder(
          int index) {
        if (rfidErrorsBuilder_ == null) {
          return rfidErrors_.get(index);  } else {
          return rfidErrorsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
           getRfidErrorsOrBuilderList() {
        if (rfidErrorsBuilder_ != null) {
          return rfidErrorsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rfidErrors_);
        }
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder addRfidErrorsBuilder() {
        return getRfidErrorsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder addRfidErrorsBuilder(
          int index) {
        return getRfidErrorsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки ключей
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.RfidError rfid_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder> 
           getRfidErrorsBuilderList() {
        return getRfidErrorsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder> 
          getRfidErrorsFieldBuilder() {
        if (rfidErrorsBuilder_ == null) {
          rfidErrorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.RfidErrorOrBuilder>(
                  rfidErrors_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          rfidErrors_ = null;
        }
        return rfidErrorsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteRfidsFailTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteRfidsFailTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteRfidsFailTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteRfidsFailTask>() {
      @java.lang.Override
      public DeleteRfidsFailTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteRfidsFailTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteRfidsFailTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteRfidsFailTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteCodesSuccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteCodesSuccessTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> 
        getCodesList();
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index);
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getCodesCount();
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList();
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на успешное удаление кодов с устройства.
   * Очередь key.device.delete_codes_success
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteCodesSuccessTask}
   */
  public static final class DeleteCodesSuccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteCodesSuccessTask)
      DeleteCodesSuccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteCodesSuccessTask.newBuilder() to construct.
    private DeleteCodesSuccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteCodesSuccessTask() {
      requestId_ = "";
      codes_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteCodesSuccessTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesSuccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesSuccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CODES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_;
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
      return codes_;
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
        getCodesOrBuilderList() {
      return codes_;
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getCodesCount() {
      return codes_.size();
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
      return codes_.get(index);
    }
    /**
     * <pre>
     * коды
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
        int index) {
      return codes_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        output.writeMessage(3, codes_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < codes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, codes_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getCodesList()
          .equals(other.getCodesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getCodesCount() > 0) {
        hash = (37 * hash) + CODES_FIELD_NUMBER;
        hash = (53 * hash) + getCodesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на успешное удаление кодов с устройства.
     * Очередь key.device.delete_codes_success
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteCodesSuccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteCodesSuccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesSuccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesSuccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
        } else {
          codes_ = null;
          codesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesSuccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask result) {
        if (codesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            codes_ = java.util.Collections.unmodifiableList(codes_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.codes_ = codes_;
        } else {
          result.codes_ = codesBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (codesBuilder_ == null) {
          if (!other.codes_.isEmpty()) {
            if (codes_.isEmpty()) {
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureCodesIsMutable();
              codes_.addAll(other.codes_);
            }
            onChanged();
          }
        } else {
          if (!other.codes_.isEmpty()) {
            if (codesBuilder_.isEmpty()) {
              codesBuilder_.dispose();
              codesBuilder_ = null;
              codes_ = other.codes_;
              bitField0_ = (bitField0_ & ~0x00000004);
              codesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCodesFieldBuilder() : null;
            } else {
              codesBuilder_.addAllMessages(other.codes_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.parser(),
                        extensionRegistry);
                if (codesBuilder_ == null) {
                  ensureCodesIsMutable();
                  codes_.add(m);
                } else {
                  codesBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> codes_ =
        java.util.Collections.emptyList();
      private void ensureCodesIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          codes_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code>(codes_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> codesBuilder_;

      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> getCodesList() {
        if (codesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(codes_);
        } else {
          return codesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getCodesCount() {
        if (codesBuilder_ == null) {
          return codes_.size();
        } else {
          return codesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code getCodes(int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);
        } else {
          return codesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.set(index, value);
          onChanged();
        } else {
          codesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.set(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(value);
          onChanged();
        } else {
          codesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code value) {
        if (codesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodesIsMutable();
          codes_.add(index, value);
          onChanged();
        } else {
          codesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodes(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder builderForValue) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.add(index, builderForValue.build());
          onChanged();
        } else {
          codesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllCodes(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code> values) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, codes_);
          onChanged();
        } else {
          codesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearCodes() {
        if (codesBuilder_ == null) {
          codes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          codesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeCodes(int index) {
        if (codesBuilder_ == null) {
          ensureCodesIsMutable();
          codes_.remove(index);
          onChanged();
        } else {
          codesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder getCodesBuilder(
          int index) {
        return getCodesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder getCodesOrBuilder(
          int index) {
        if (codesBuilder_ == null) {
          return codes_.get(index);  } else {
          return codesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
           getCodesOrBuilderList() {
        if (codesBuilder_ != null) {
          return codesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(codes_);
        }
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder() {
        return getCodesFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder addCodesBuilder(
          int index) {
        return getCodesFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.getDefaultInstance());
      }
      /**
       * <pre>
       * коды
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.Code codes = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder> 
           getCodesBuilderList() {
        return getCodesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder> 
          getCodesFieldBuilder() {
        if (codesBuilder_ == null) {
          codesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code, ru.keyapis.device.v1.KeyapisDeviceV1Proto.Code.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeOrBuilder>(
                  codes_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          codes_ = null;
        }
        return codesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteCodesSuccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteCodesSuccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteCodesSuccessTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteCodesSuccessTask>() {
      @java.lang.Override
      public DeleteCodesSuccessTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteCodesSuccessTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteCodesSuccessTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesSuccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteCodesFailTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteCodesFailTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> 
        getCodeErrorsList();
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getCodeErrors(int index);
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    int getCodeErrorsCount();
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
        getCodeErrorsOrBuilderList();
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getCodeErrorsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Задача ответ на неуспешное удаление кодов с устройства.
   * Очередь key.device.delete_codes_fail
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteCodesFailTask}
   */
  public static final class DeleteCodesFailTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteCodesFailTask)
      DeleteCodesFailTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteCodesFailTask.newBuilder() to construct.
    private DeleteCodesFailTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteCodesFailTask() {
      requestId_ = "";
      codeErrors_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteCodesFailTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesFailTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesFailTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int CODE_ERRORS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> codeErrors_;
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> getCodeErrorsList() {
      return codeErrors_;
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
        getCodeErrorsOrBuilderList() {
      return codeErrors_;
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public int getCodeErrorsCount() {
      return codeErrors_.size();
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getCodeErrors(int index) {
      return codeErrors_.get(index);
    }
    /**
     * <pre>
     * Ошибки кодов
     * </pre>
     *
     * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getCodeErrorsOrBuilder(
        int index) {
      return codeErrors_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      for (int i = 0; i < codeErrors_.size(); i++) {
        output.writeMessage(3, codeErrors_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      for (int i = 0; i < codeErrors_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, codeErrors_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (!getCodeErrorsList()
          .equals(other.getCodeErrorsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (getCodeErrorsCount() > 0) {
        hash = (37 * hash) + CODE_ERRORS_FIELD_NUMBER;
        hash = (53 * hash) + getCodeErrorsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача ответ на неуспешное удаление кодов с устройства.
     * Очередь key.device.delete_codes_fail
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteCodesFailTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteCodesFailTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesFailTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesFailTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        if (codeErrorsBuilder_ == null) {
          codeErrors_ = java.util.Collections.emptyList();
        } else {
          codeErrors_ = null;
          codeErrorsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteCodesFailTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask result) {
        if (codeErrorsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            codeErrors_ = java.util.Collections.unmodifiableList(codeErrors_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.codeErrors_ = codeErrors_;
        } else {
          result.codeErrors_ = codeErrorsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (codeErrorsBuilder_ == null) {
          if (!other.codeErrors_.isEmpty()) {
            if (codeErrors_.isEmpty()) {
              codeErrors_ = other.codeErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureCodeErrorsIsMutable();
              codeErrors_.addAll(other.codeErrors_);
            }
            onChanged();
          }
        } else {
          if (!other.codeErrors_.isEmpty()) {
            if (codeErrorsBuilder_.isEmpty()) {
              codeErrorsBuilder_.dispose();
              codeErrorsBuilder_ = null;
              codeErrors_ = other.codeErrors_;
              bitField0_ = (bitField0_ & ~0x00000004);
              codeErrorsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCodeErrorsFieldBuilder() : null;
            } else {
              codeErrorsBuilder_.addAllMessages(other.codeErrors_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError m =
                    input.readMessage(
                        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.parser(),
                        extensionRegistry);
                if (codeErrorsBuilder_ == null) {
                  ensureCodeErrorsIsMutable();
                  codeErrors_.add(m);
                } else {
                  codeErrorsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> codeErrors_ =
        java.util.Collections.emptyList();
      private void ensureCodeErrorsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          codeErrors_ = new java.util.ArrayList<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError>(codeErrors_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> codeErrorsBuilder_;

      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> getCodeErrorsList() {
        if (codeErrorsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(codeErrors_);
        } else {
          return codeErrorsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public int getCodeErrorsCount() {
        if (codeErrorsBuilder_ == null) {
          return codeErrors_.size();
        } else {
          return codeErrorsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError getCodeErrors(int index) {
        if (codeErrorsBuilder_ == null) {
          return codeErrors_.get(index);
        } else {
          return codeErrorsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
        if (codeErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodeErrorsIsMutable();
          codeErrors_.set(index, value);
          onChanged();
        } else {
          codeErrorsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.set(index, builderForValue.build());
          onChanged();
        } else {
          codeErrorsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
        if (codeErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodeErrorsIsMutable();
          codeErrors_.add(value);
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError value) {
        if (codeErrorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCodeErrorsIsMutable();
          codeErrors_.add(index, value);
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.add(builderForValue.build());
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addCodeErrors(
          int index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder builderForValue) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.add(index, builderForValue.build());
          onChanged();
        } else {
          codeErrorsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder addAllCodeErrors(
          java.lang.Iterable<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError> values) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, codeErrors_);
          onChanged();
        } else {
          codeErrorsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearCodeErrors() {
        if (codeErrorsBuilder_ == null) {
          codeErrors_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          codeErrorsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder removeCodeErrors(int index) {
        if (codeErrorsBuilder_ == null) {
          ensureCodeErrorsIsMutable();
          codeErrors_.remove(index);
          onChanged();
        } else {
          codeErrorsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder getCodeErrorsBuilder(
          int index) {
        return getCodeErrorsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder getCodeErrorsOrBuilder(
          int index) {
        if (codeErrorsBuilder_ == null) {
          return codeErrors_.get(index);  } else {
          return codeErrorsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<? extends ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
           getCodeErrorsOrBuilderList() {
        if (codeErrorsBuilder_ != null) {
          return codeErrorsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(codeErrors_);
        }
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder addCodeErrorsBuilder() {
        return getCodeErrorsFieldBuilder().addBuilder(
            ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder addCodeErrorsBuilder(
          int index) {
        return getCodeErrorsFieldBuilder().addBuilder(
            index, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.getDefaultInstance());
      }
      /**
       * <pre>
       * Ошибки кодов
       * </pre>
       *
       * <code>repeated .keyapis.device.v1.CodeError code_errors = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public java.util.List<ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder> 
           getCodeErrorsBuilderList() {
        return getCodeErrorsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder> 
          getCodeErrorsFieldBuilder() {
        if (codeErrorsBuilder_ == null) {
          codeErrorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeError.Builder, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CodeErrorOrBuilder>(
                  codeErrors_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          codeErrors_ = null;
        }
        return codeErrorsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteCodesFailTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteCodesFailTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteCodesFailTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteCodesFailTask>() {
      @java.lang.Override
      public DeleteCodesFailTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteCodesFailTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteCodesFailTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteCodesFailTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OpenAccessPointTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.OpenAccessPointTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 3;</code>
     * @return Whether the relayIndex field is set.
     */
    boolean hasRelayIndex();
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 3;</code>
     * @return The relayIndex.
     */
    com.google.protobuf.Int32Value getRelayIndex();
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 3;</code>
     */
    com.google.protobuf.Int32ValueOrBuilder getRelayIndexOrBuilder();

    /**
     * <pre>
     * Задержка в секундах
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 4;</code>
     * @return Whether the delay field is set.
     */
    boolean hasDelay();
    /**
     * <pre>
     * Задержка в секундах
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 4;</code>
     * @return The delay.
     */
    com.google.protobuf.Int32Value getDelay();
    /**
     * <pre>
     * Задержка в секундах
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 4;</code>
     */
    com.google.protobuf.Int32ValueOrBuilder getDelayOrBuilder();

    /**
     * <pre>
     * ГРЗ авто
     * </pre>
     *
     * <code>.google.protobuf.StringValue car_number = 5;</code>
     * @return Whether the carNumber field is set.
     */
    boolean hasCarNumber();
    /**
     * <pre>
     * ГРЗ авто
     * </pre>
     *
     * <code>.google.protobuf.StringValue car_number = 5;</code>
     * @return The carNumber.
     */
    com.google.protobuf.StringValue getCarNumber();
    /**
     * <pre>
     * ГРЗ авто
     * </pre>
     *
     * <code>.google.protobuf.StringValue car_number = 5;</code>
     */
    com.google.protobuf.StringValueOrBuilder getCarNumberOrBuilder();

    /**
     * <pre>
     * Тип ТС
     * </pre>
     *
     * <code>.google.protobuf.StringValue vehicle = 6;</code>
     * @return Whether the vehicle field is set.
     */
    boolean hasVehicle();
    /**
     * <pre>
     * Тип ТС
     * </pre>
     *
     * <code>.google.protobuf.StringValue vehicle = 6;</code>
     * @return The vehicle.
     */
    com.google.protobuf.StringValue getVehicle();
    /**
     * <pre>
     * Тип ТС
     * </pre>
     *
     * <code>.google.protobuf.StringValue vehicle = 6;</code>
     */
    com.google.protobuf.StringValueOrBuilder getVehicleOrBuilder();

    /**
     * <pre>
     * Наименование курьерской компании
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
     * @return Whether the courierCompanyName field is set.
     */
    boolean hasCourierCompanyName();
    /**
     * <pre>
     * Наименование курьерской компании
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
     * @return The courierCompanyName.
     */
    com.google.protobuf.StringValue getCourierCompanyName();
    /**
     * <pre>
     * Наименование курьерской компании
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
     */
    com.google.protobuf.StringValueOrBuilder getCourierCompanyNameOrBuilder();

    /**
     * <pre>
     * Номер заказа
     * </pre>
     *
     * <code>.google.protobuf.StringValue order_number = 8;</code>
     * @return Whether the orderNumber field is set.
     */
    boolean hasOrderNumber();
    /**
     * <pre>
     * Номер заказа
     * </pre>
     *
     * <code>.google.protobuf.StringValue order_number = 8;</code>
     * @return The orderNumber.
     */
    com.google.protobuf.StringValue getOrderNumber();
    /**
     * <pre>
     * Номер заказа
     * </pre>
     *
     * <code>.google.protobuf.StringValue order_number = 8;</code>
     */
    com.google.protobuf.StringValueOrBuilder getOrderNumberOrBuilder();

    /**
     * <pre>
     * Идентификатор курьера
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_id = 9;</code>
     * @return Whether the courierId field is set.
     */
    boolean hasCourierId();
    /**
     * <pre>
     * Идентификатор курьера
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_id = 9;</code>
     * @return The courierId.
     */
    com.google.protobuf.StringValue getCourierId();
    /**
     * <pre>
     * Идентификатор курьера
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_id = 9;</code>
     */
    com.google.protobuf.StringValueOrBuilder getCourierIdOrBuilder();
  }
  /**
   * <pre>
   * Задача на открытие точки доступа.
   * Очередь key.device.open_access_point
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.OpenAccessPointTask}
   */
  public static final class OpenAccessPointTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.OpenAccessPointTask)
      OpenAccessPointTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OpenAccessPointTask.newBuilder() to construct.
    private OpenAccessPointTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OpenAccessPointTask() {
      requestId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new OpenAccessPointTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenAccessPointTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenAccessPointTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RELAY_INDEX_FIELD_NUMBER = 3;
    private com.google.protobuf.Int32Value relayIndex_;
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 3;</code>
     * @return Whether the relayIndex field is set.
     */
    @java.lang.Override
    public boolean hasRelayIndex() {
      return relayIndex_ != null;
    }
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 3;</code>
     * @return The relayIndex.
     */
    @java.lang.Override
    public com.google.protobuf.Int32Value getRelayIndex() {
      return relayIndex_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
    }
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Int32ValueOrBuilder getRelayIndexOrBuilder() {
      return relayIndex_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
    }

    public static final int DELAY_FIELD_NUMBER = 4;
    private com.google.protobuf.Int32Value delay_;
    /**
     * <pre>
     * Задержка в секундах
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 4;</code>
     * @return Whether the delay field is set.
     */
    @java.lang.Override
    public boolean hasDelay() {
      return delay_ != null;
    }
    /**
     * <pre>
     * Задержка в секундах
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 4;</code>
     * @return The delay.
     */
    @java.lang.Override
    public com.google.protobuf.Int32Value getDelay() {
      return delay_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
    }
    /**
     * <pre>
     * Задержка в секундах
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 4;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Int32ValueOrBuilder getDelayOrBuilder() {
      return delay_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
    }

    public static final int CAR_NUMBER_FIELD_NUMBER = 5;
    private com.google.protobuf.StringValue carNumber_;
    /**
     * <pre>
     * ГРЗ авто
     * </pre>
     *
     * <code>.google.protobuf.StringValue car_number = 5;</code>
     * @return Whether the carNumber field is set.
     */
    @java.lang.Override
    public boolean hasCarNumber() {
      return carNumber_ != null;
    }
    /**
     * <pre>
     * ГРЗ авто
     * </pre>
     *
     * <code>.google.protobuf.StringValue car_number = 5;</code>
     * @return The carNumber.
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getCarNumber() {
      return carNumber_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : carNumber_;
    }
    /**
     * <pre>
     * ГРЗ авто
     * </pre>
     *
     * <code>.google.protobuf.StringValue car_number = 5;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValueOrBuilder getCarNumberOrBuilder() {
      return carNumber_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : carNumber_;
    }

    public static final int VEHICLE_FIELD_NUMBER = 6;
    private com.google.protobuf.StringValue vehicle_;
    /**
     * <pre>
     * Тип ТС
     * </pre>
     *
     * <code>.google.protobuf.StringValue vehicle = 6;</code>
     * @return Whether the vehicle field is set.
     */
    @java.lang.Override
    public boolean hasVehicle() {
      return vehicle_ != null;
    }
    /**
     * <pre>
     * Тип ТС
     * </pre>
     *
     * <code>.google.protobuf.StringValue vehicle = 6;</code>
     * @return The vehicle.
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getVehicle() {
      return vehicle_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : vehicle_;
    }
    /**
     * <pre>
     * Тип ТС
     * </pre>
     *
     * <code>.google.protobuf.StringValue vehicle = 6;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValueOrBuilder getVehicleOrBuilder() {
      return vehicle_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : vehicle_;
    }

    public static final int COURIER_COMPANY_NAME_FIELD_NUMBER = 7;
    private com.google.protobuf.StringValue courierCompanyName_;
    /**
     * <pre>
     * Наименование курьерской компании
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
     * @return Whether the courierCompanyName field is set.
     */
    @java.lang.Override
    public boolean hasCourierCompanyName() {
      return courierCompanyName_ != null;
    }
    /**
     * <pre>
     * Наименование курьерской компании
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
     * @return The courierCompanyName.
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getCourierCompanyName() {
      return courierCompanyName_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : courierCompanyName_;
    }
    /**
     * <pre>
     * Наименование курьерской компании
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValueOrBuilder getCourierCompanyNameOrBuilder() {
      return courierCompanyName_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : courierCompanyName_;
    }

    public static final int ORDER_NUMBER_FIELD_NUMBER = 8;
    private com.google.protobuf.StringValue orderNumber_;
    /**
     * <pre>
     * Номер заказа
     * </pre>
     *
     * <code>.google.protobuf.StringValue order_number = 8;</code>
     * @return Whether the orderNumber field is set.
     */
    @java.lang.Override
    public boolean hasOrderNumber() {
      return orderNumber_ != null;
    }
    /**
     * <pre>
     * Номер заказа
     * </pre>
     *
     * <code>.google.protobuf.StringValue order_number = 8;</code>
     * @return The orderNumber.
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getOrderNumber() {
      return orderNumber_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : orderNumber_;
    }
    /**
     * <pre>
     * Номер заказа
     * </pre>
     *
     * <code>.google.protobuf.StringValue order_number = 8;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValueOrBuilder getOrderNumberOrBuilder() {
      return orderNumber_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : orderNumber_;
    }

    public static final int COURIER_ID_FIELD_NUMBER = 9;
    private com.google.protobuf.StringValue courierId_;
    /**
     * <pre>
     * Идентификатор курьера
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_id = 9;</code>
     * @return Whether the courierId field is set.
     */
    @java.lang.Override
    public boolean hasCourierId() {
      return courierId_ != null;
    }
    /**
     * <pre>
     * Идентификатор курьера
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_id = 9;</code>
     * @return The courierId.
     */
    @java.lang.Override
    public com.google.protobuf.StringValue getCourierId() {
      return courierId_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : courierId_;
    }
    /**
     * <pre>
     * Идентификатор курьера
     * </pre>
     *
     * <code>.google.protobuf.StringValue courier_id = 9;</code>
     */
    @java.lang.Override
    public com.google.protobuf.StringValueOrBuilder getCourierIdOrBuilder() {
      return courierId_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : courierId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      if (relayIndex_ != null) {
        output.writeMessage(3, getRelayIndex());
      }
      if (delay_ != null) {
        output.writeMessage(4, getDelay());
      }
      if (carNumber_ != null) {
        output.writeMessage(5, getCarNumber());
      }
      if (vehicle_ != null) {
        output.writeMessage(6, getVehicle());
      }
      if (courierCompanyName_ != null) {
        output.writeMessage(7, getCourierCompanyName());
      }
      if (orderNumber_ != null) {
        output.writeMessage(8, getOrderNumber());
      }
      if (courierId_ != null) {
        output.writeMessage(9, getCourierId());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      if (relayIndex_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getRelayIndex());
      }
      if (delay_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getDelay());
      }
      if (carNumber_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getCarNumber());
      }
      if (vehicle_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getVehicle());
      }
      if (courierCompanyName_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getCourierCompanyName());
      }
      if (orderNumber_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getOrderNumber());
      }
      if (courierId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getCourierId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (hasRelayIndex() != other.hasRelayIndex()) return false;
      if (hasRelayIndex()) {
        if (!getRelayIndex()
            .equals(other.getRelayIndex())) return false;
      }
      if (hasDelay() != other.hasDelay()) return false;
      if (hasDelay()) {
        if (!getDelay()
            .equals(other.getDelay())) return false;
      }
      if (hasCarNumber() != other.hasCarNumber()) return false;
      if (hasCarNumber()) {
        if (!getCarNumber()
            .equals(other.getCarNumber())) return false;
      }
      if (hasVehicle() != other.hasVehicle()) return false;
      if (hasVehicle()) {
        if (!getVehicle()
            .equals(other.getVehicle())) return false;
      }
      if (hasCourierCompanyName() != other.hasCourierCompanyName()) return false;
      if (hasCourierCompanyName()) {
        if (!getCourierCompanyName()
            .equals(other.getCourierCompanyName())) return false;
      }
      if (hasOrderNumber() != other.hasOrderNumber()) return false;
      if (hasOrderNumber()) {
        if (!getOrderNumber()
            .equals(other.getOrderNumber())) return false;
      }
      if (hasCourierId() != other.hasCourierId()) return false;
      if (hasCourierId()) {
        if (!getCourierId()
            .equals(other.getCourierId())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (hasRelayIndex()) {
        hash = (37 * hash) + RELAY_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getRelayIndex().hashCode();
      }
      if (hasDelay()) {
        hash = (37 * hash) + DELAY_FIELD_NUMBER;
        hash = (53 * hash) + getDelay().hashCode();
      }
      if (hasCarNumber()) {
        hash = (37 * hash) + CAR_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getCarNumber().hashCode();
      }
      if (hasVehicle()) {
        hash = (37 * hash) + VEHICLE_FIELD_NUMBER;
        hash = (53 * hash) + getVehicle().hashCode();
      }
      if (hasCourierCompanyName()) {
        hash = (37 * hash) + COURIER_COMPANY_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getCourierCompanyName().hashCode();
      }
      if (hasOrderNumber()) {
        hash = (37 * hash) + ORDER_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getOrderNumber().hashCode();
      }
      if (hasCourierId()) {
        hash = (37 * hash) + COURIER_ID_FIELD_NUMBER;
        hash = (53 * hash) + getCourierId().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на открытие точки доступа.
     * Очередь key.device.open_access_point
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.OpenAccessPointTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.OpenAccessPointTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenAccessPointTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenAccessPointTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        relayIndex_ = null;
        if (relayIndexBuilder_ != null) {
          relayIndexBuilder_.dispose();
          relayIndexBuilder_ = null;
        }
        delay_ = null;
        if (delayBuilder_ != null) {
          delayBuilder_.dispose();
          delayBuilder_ = null;
        }
        carNumber_ = null;
        if (carNumberBuilder_ != null) {
          carNumberBuilder_.dispose();
          carNumberBuilder_ = null;
        }
        vehicle_ = null;
        if (vehicleBuilder_ != null) {
          vehicleBuilder_.dispose();
          vehicleBuilder_ = null;
        }
        courierCompanyName_ = null;
        if (courierCompanyNameBuilder_ != null) {
          courierCompanyNameBuilder_.dispose();
          courierCompanyNameBuilder_ = null;
        }
        orderNumber_ = null;
        if (orderNumberBuilder_ != null) {
          orderNumberBuilder_.dispose();
          orderNumberBuilder_ = null;
        }
        courierId_ = null;
        if (courierIdBuilder_ != null) {
          courierIdBuilder_.dispose();
          courierIdBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenAccessPointTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.relayIndex_ = relayIndexBuilder_ == null
              ? relayIndex_
              : relayIndexBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.delay_ = delayBuilder_ == null
              ? delay_
              : delayBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.carNumber_ = carNumberBuilder_ == null
              ? carNumber_
              : carNumberBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.vehicle_ = vehicleBuilder_ == null
              ? vehicle_
              : vehicleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.courierCompanyName_ = courierCompanyNameBuilder_ == null
              ? courierCompanyName_
              : courierCompanyNameBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.orderNumber_ = orderNumberBuilder_ == null
              ? orderNumber_
              : orderNumberBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.courierId_ = courierIdBuilder_ == null
              ? courierId_
              : courierIdBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (other.hasRelayIndex()) {
          mergeRelayIndex(other.getRelayIndex());
        }
        if (other.hasDelay()) {
          mergeDelay(other.getDelay());
        }
        if (other.hasCarNumber()) {
          mergeCarNumber(other.getCarNumber());
        }
        if (other.hasVehicle()) {
          mergeVehicle(other.getVehicle());
        }
        if (other.hasCourierCompanyName()) {
          mergeCourierCompanyName(other.getCourierCompanyName());
        }
        if (other.hasOrderNumber()) {
          mergeOrderNumber(other.getOrderNumber());
        }
        if (other.hasCourierId()) {
          mergeCourierId(other.getCourierId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getRelayIndexFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getDelayFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getCarNumberFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    getVehicleFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getCourierCompanyNameFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getOrderNumberFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    getCourierIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Int32Value relayIndex_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> relayIndexBuilder_;
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       * @return Whether the relayIndex field is set.
       */
      public boolean hasRelayIndex() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       * @return The relayIndex.
       */
      public com.google.protobuf.Int32Value getRelayIndex() {
        if (relayIndexBuilder_ == null) {
          return relayIndex_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
        } else {
          return relayIndexBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       */
      public Builder setRelayIndex(com.google.protobuf.Int32Value value) {
        if (relayIndexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          relayIndex_ = value;
        } else {
          relayIndexBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       */
      public Builder setRelayIndex(
          com.google.protobuf.Int32Value.Builder builderForValue) {
        if (relayIndexBuilder_ == null) {
          relayIndex_ = builderForValue.build();
        } else {
          relayIndexBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       */
      public Builder mergeRelayIndex(com.google.protobuf.Int32Value value) {
        if (relayIndexBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            relayIndex_ != null &&
            relayIndex_ != com.google.protobuf.Int32Value.getDefaultInstance()) {
            getRelayIndexBuilder().mergeFrom(value);
          } else {
            relayIndex_ = value;
          }
        } else {
          relayIndexBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       */
      public Builder clearRelayIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        relayIndex_ = null;
        if (relayIndexBuilder_ != null) {
          relayIndexBuilder_.dispose();
          relayIndexBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       */
      public com.google.protobuf.Int32Value.Builder getRelayIndexBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getRelayIndexFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       */
      public com.google.protobuf.Int32ValueOrBuilder getRelayIndexOrBuilder() {
        if (relayIndexBuilder_ != null) {
          return relayIndexBuilder_.getMessageOrBuilder();
        } else {
          return relayIndex_ == null ?
              com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
        }
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> 
          getRelayIndexFieldBuilder() {
        if (relayIndexBuilder_ == null) {
          relayIndexBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>(
                  getRelayIndex(),
                  getParentForChildren(),
                  isClean());
          relayIndex_ = null;
        }
        return relayIndexBuilder_;
      }

      private com.google.protobuf.Int32Value delay_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> delayBuilder_;
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       * @return Whether the delay field is set.
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       * @return The delay.
       */
      public com.google.protobuf.Int32Value getDelay() {
        if (delayBuilder_ == null) {
          return delay_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
        } else {
          return delayBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       */
      public Builder setDelay(com.google.protobuf.Int32Value value) {
        if (delayBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          delay_ = value;
        } else {
          delayBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       */
      public Builder setDelay(
          com.google.protobuf.Int32Value.Builder builderForValue) {
        if (delayBuilder_ == null) {
          delay_ = builderForValue.build();
        } else {
          delayBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       */
      public Builder mergeDelay(com.google.protobuf.Int32Value value) {
        if (delayBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            delay_ != null &&
            delay_ != com.google.protobuf.Int32Value.getDefaultInstance()) {
            getDelayBuilder().mergeFrom(value);
          } else {
            delay_ = value;
          }
        } else {
          delayBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       */
      public Builder clearDelay() {
        bitField0_ = (bitField0_ & ~0x00000008);
        delay_ = null;
        if (delayBuilder_ != null) {
          delayBuilder_.dispose();
          delayBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       */
      public com.google.protobuf.Int32Value.Builder getDelayBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getDelayFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       */
      public com.google.protobuf.Int32ValueOrBuilder getDelayOrBuilder() {
        if (delayBuilder_ != null) {
          return delayBuilder_.getMessageOrBuilder();
        } else {
          return delay_ == null ?
              com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
        }
      }
      /**
       * <pre>
       * Задержка в секундах
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> 
          getDelayFieldBuilder() {
        if (delayBuilder_ == null) {
          delayBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>(
                  getDelay(),
                  getParentForChildren(),
                  isClean());
          delay_ = null;
        }
        return delayBuilder_;
      }

      private com.google.protobuf.StringValue carNumber_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> carNumberBuilder_;
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       * @return Whether the carNumber field is set.
       */
      public boolean hasCarNumber() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       * @return The carNumber.
       */
      public com.google.protobuf.StringValue getCarNumber() {
        if (carNumberBuilder_ == null) {
          return carNumber_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : carNumber_;
        } else {
          return carNumberBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       */
      public Builder setCarNumber(com.google.protobuf.StringValue value) {
        if (carNumberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          carNumber_ = value;
        } else {
          carNumberBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       */
      public Builder setCarNumber(
          com.google.protobuf.StringValue.Builder builderForValue) {
        if (carNumberBuilder_ == null) {
          carNumber_ = builderForValue.build();
        } else {
          carNumberBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       */
      public Builder mergeCarNumber(com.google.protobuf.StringValue value) {
        if (carNumberBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            carNumber_ != null &&
            carNumber_ != com.google.protobuf.StringValue.getDefaultInstance()) {
            getCarNumberBuilder().mergeFrom(value);
          } else {
            carNumber_ = value;
          }
        } else {
          carNumberBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       */
      public Builder clearCarNumber() {
        bitField0_ = (bitField0_ & ~0x00000010);
        carNumber_ = null;
        if (carNumberBuilder_ != null) {
          carNumberBuilder_.dispose();
          carNumberBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       */
      public com.google.protobuf.StringValue.Builder getCarNumberBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getCarNumberFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       */
      public com.google.protobuf.StringValueOrBuilder getCarNumberOrBuilder() {
        if (carNumberBuilder_ != null) {
          return carNumberBuilder_.getMessageOrBuilder();
        } else {
          return carNumber_ == null ?
              com.google.protobuf.StringValue.getDefaultInstance() : carNumber_;
        }
      }
      /**
       * <pre>
       * ГРЗ авто
       * </pre>
       *
       * <code>.google.protobuf.StringValue car_number = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> 
          getCarNumberFieldBuilder() {
        if (carNumberBuilder_ == null) {
          carNumberBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder>(
                  getCarNumber(),
                  getParentForChildren(),
                  isClean());
          carNumber_ = null;
        }
        return carNumberBuilder_;
      }

      private com.google.protobuf.StringValue vehicle_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> vehicleBuilder_;
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       * @return Whether the vehicle field is set.
       */
      public boolean hasVehicle() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       * @return The vehicle.
       */
      public com.google.protobuf.StringValue getVehicle() {
        if (vehicleBuilder_ == null) {
          return vehicle_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : vehicle_;
        } else {
          return vehicleBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       */
      public Builder setVehicle(com.google.protobuf.StringValue value) {
        if (vehicleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vehicle_ = value;
        } else {
          vehicleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       */
      public Builder setVehicle(
          com.google.protobuf.StringValue.Builder builderForValue) {
        if (vehicleBuilder_ == null) {
          vehicle_ = builderForValue.build();
        } else {
          vehicleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       */
      public Builder mergeVehicle(com.google.protobuf.StringValue value) {
        if (vehicleBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            vehicle_ != null &&
            vehicle_ != com.google.protobuf.StringValue.getDefaultInstance()) {
            getVehicleBuilder().mergeFrom(value);
          } else {
            vehicle_ = value;
          }
        } else {
          vehicleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       */
      public Builder clearVehicle() {
        bitField0_ = (bitField0_ & ~0x00000020);
        vehicle_ = null;
        if (vehicleBuilder_ != null) {
          vehicleBuilder_.dispose();
          vehicleBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       */
      public com.google.protobuf.StringValue.Builder getVehicleBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getVehicleFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       */
      public com.google.protobuf.StringValueOrBuilder getVehicleOrBuilder() {
        if (vehicleBuilder_ != null) {
          return vehicleBuilder_.getMessageOrBuilder();
        } else {
          return vehicle_ == null ?
              com.google.protobuf.StringValue.getDefaultInstance() : vehicle_;
        }
      }
      /**
       * <pre>
       * Тип ТС
       * </pre>
       *
       * <code>.google.protobuf.StringValue vehicle = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> 
          getVehicleFieldBuilder() {
        if (vehicleBuilder_ == null) {
          vehicleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder>(
                  getVehicle(),
                  getParentForChildren(),
                  isClean());
          vehicle_ = null;
        }
        return vehicleBuilder_;
      }

      private com.google.protobuf.StringValue courierCompanyName_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> courierCompanyNameBuilder_;
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       * @return Whether the courierCompanyName field is set.
       */
      public boolean hasCourierCompanyName() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       * @return The courierCompanyName.
       */
      public com.google.protobuf.StringValue getCourierCompanyName() {
        if (courierCompanyNameBuilder_ == null) {
          return courierCompanyName_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : courierCompanyName_;
        } else {
          return courierCompanyNameBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       */
      public Builder setCourierCompanyName(com.google.protobuf.StringValue value) {
        if (courierCompanyNameBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          courierCompanyName_ = value;
        } else {
          courierCompanyNameBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       */
      public Builder setCourierCompanyName(
          com.google.protobuf.StringValue.Builder builderForValue) {
        if (courierCompanyNameBuilder_ == null) {
          courierCompanyName_ = builderForValue.build();
        } else {
          courierCompanyNameBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       */
      public Builder mergeCourierCompanyName(com.google.protobuf.StringValue value) {
        if (courierCompanyNameBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            courierCompanyName_ != null &&
            courierCompanyName_ != com.google.protobuf.StringValue.getDefaultInstance()) {
            getCourierCompanyNameBuilder().mergeFrom(value);
          } else {
            courierCompanyName_ = value;
          }
        } else {
          courierCompanyNameBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       */
      public Builder clearCourierCompanyName() {
        bitField0_ = (bitField0_ & ~0x00000040);
        courierCompanyName_ = null;
        if (courierCompanyNameBuilder_ != null) {
          courierCompanyNameBuilder_.dispose();
          courierCompanyNameBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       */
      public com.google.protobuf.StringValue.Builder getCourierCompanyNameBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getCourierCompanyNameFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       */
      public com.google.protobuf.StringValueOrBuilder getCourierCompanyNameOrBuilder() {
        if (courierCompanyNameBuilder_ != null) {
          return courierCompanyNameBuilder_.getMessageOrBuilder();
        } else {
          return courierCompanyName_ == null ?
              com.google.protobuf.StringValue.getDefaultInstance() : courierCompanyName_;
        }
      }
      /**
       * <pre>
       * Наименование курьерской компании
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_company_name = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> 
          getCourierCompanyNameFieldBuilder() {
        if (courierCompanyNameBuilder_ == null) {
          courierCompanyNameBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder>(
                  getCourierCompanyName(),
                  getParentForChildren(),
                  isClean());
          courierCompanyName_ = null;
        }
        return courierCompanyNameBuilder_;
      }

      private com.google.protobuf.StringValue orderNumber_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> orderNumberBuilder_;
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       * @return Whether the orderNumber field is set.
       */
      public boolean hasOrderNumber() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       * @return The orderNumber.
       */
      public com.google.protobuf.StringValue getOrderNumber() {
        if (orderNumberBuilder_ == null) {
          return orderNumber_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : orderNumber_;
        } else {
          return orderNumberBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       */
      public Builder setOrderNumber(com.google.protobuf.StringValue value) {
        if (orderNumberBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          orderNumber_ = value;
        } else {
          orderNumberBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       */
      public Builder setOrderNumber(
          com.google.protobuf.StringValue.Builder builderForValue) {
        if (orderNumberBuilder_ == null) {
          orderNumber_ = builderForValue.build();
        } else {
          orderNumberBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       */
      public Builder mergeOrderNumber(com.google.protobuf.StringValue value) {
        if (orderNumberBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            orderNumber_ != null &&
            orderNumber_ != com.google.protobuf.StringValue.getDefaultInstance()) {
            getOrderNumberBuilder().mergeFrom(value);
          } else {
            orderNumber_ = value;
          }
        } else {
          orderNumberBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       */
      public Builder clearOrderNumber() {
        bitField0_ = (bitField0_ & ~0x00000080);
        orderNumber_ = null;
        if (orderNumberBuilder_ != null) {
          orderNumberBuilder_.dispose();
          orderNumberBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       */
      public com.google.protobuf.StringValue.Builder getOrderNumberBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getOrderNumberFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       */
      public com.google.protobuf.StringValueOrBuilder getOrderNumberOrBuilder() {
        if (orderNumberBuilder_ != null) {
          return orderNumberBuilder_.getMessageOrBuilder();
        } else {
          return orderNumber_ == null ?
              com.google.protobuf.StringValue.getDefaultInstance() : orderNumber_;
        }
      }
      /**
       * <pre>
       * Номер заказа
       * </pre>
       *
       * <code>.google.protobuf.StringValue order_number = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> 
          getOrderNumberFieldBuilder() {
        if (orderNumberBuilder_ == null) {
          orderNumberBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder>(
                  getOrderNumber(),
                  getParentForChildren(),
                  isClean());
          orderNumber_ = null;
        }
        return orderNumberBuilder_;
      }

      private com.google.protobuf.StringValue courierId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> courierIdBuilder_;
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       * @return Whether the courierId field is set.
       */
      public boolean hasCourierId() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       * @return The courierId.
       */
      public com.google.protobuf.StringValue getCourierId() {
        if (courierIdBuilder_ == null) {
          return courierId_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : courierId_;
        } else {
          return courierIdBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       */
      public Builder setCourierId(com.google.protobuf.StringValue value) {
        if (courierIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          courierId_ = value;
        } else {
          courierIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       */
      public Builder setCourierId(
          com.google.protobuf.StringValue.Builder builderForValue) {
        if (courierIdBuilder_ == null) {
          courierId_ = builderForValue.build();
        } else {
          courierIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       */
      public Builder mergeCourierId(com.google.protobuf.StringValue value) {
        if (courierIdBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
            courierId_ != null &&
            courierId_ != com.google.protobuf.StringValue.getDefaultInstance()) {
            getCourierIdBuilder().mergeFrom(value);
          } else {
            courierId_ = value;
          }
        } else {
          courierIdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       */
      public Builder clearCourierId() {
        bitField0_ = (bitField0_ & ~0x00000100);
        courierId_ = null;
        if (courierIdBuilder_ != null) {
          courierIdBuilder_.dispose();
          courierIdBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       */
      public com.google.protobuf.StringValue.Builder getCourierIdBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getCourierIdFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       */
      public com.google.protobuf.StringValueOrBuilder getCourierIdOrBuilder() {
        if (courierIdBuilder_ != null) {
          return courierIdBuilder_.getMessageOrBuilder();
        } else {
          return courierId_ == null ?
              com.google.protobuf.StringValue.getDefaultInstance() : courierId_;
        }
      }
      /**
       * <pre>
       * Идентификатор курьера
       * </pre>
       *
       * <code>.google.protobuf.StringValue courier_id = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> 
          getCourierIdFieldBuilder() {
        if (courierIdBuilder_ == null) {
          courierIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder>(
                  getCourierId(),
                  getParentForChildren(),
                  isClean());
          courierId_ = null;
        }
        return courierIdBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.OpenAccessPointTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.OpenAccessPointTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OpenAccessPointTask>
        PARSER = new com.google.protobuf.AbstractParser<OpenAccessPointTask>() {
      @java.lang.Override
      public OpenAccessPointTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<OpenAccessPointTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<OpenAccessPointTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenAccessPointTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OpenTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.OpenTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    java.lang.String getHost();
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    com.google.protobuf.ByteString
        getHostBytes();

    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 7;</code>
     * @return Whether the relayIndex field is set.
     */
    boolean hasRelayIndex();
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 7;</code>
     * @return The relayIndex.
     */
    com.google.protobuf.Int32Value getRelayIndex();
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 7;</code>
     */
    com.google.protobuf.Int32ValueOrBuilder getRelayIndexOrBuilder();

    /**
     * <pre>
     * Задержка в секундах.
     * Если не передано, то полставляется значение по умолчанию (5)
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 8;</code>
     * @return Whether the delay field is set.
     */
    boolean hasDelay();
    /**
     * <pre>
     * Задержка в секундах.
     * Если не передано, то полставляется значение по умолчанию (5)
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 8;</code>
     * @return The delay.
     */
    com.google.protobuf.Int32Value getDelay();
    /**
     * <pre>
     * Задержка в секундах.
     * Если не передано, то полставляется значение по умолчанию (5)
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 8;</code>
     */
    com.google.protobuf.Int32ValueOrBuilder getDelayOrBuilder();
  }
  /**
   * <pre>
   * Задача на открытие устройства.
   * Очередь key.device.open
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.OpenTask}
   */
  public static final class OpenTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.OpenTask)
      OpenTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OpenTask.newBuilder() to construct.
    private OpenTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OpenTask() {
      requestId_ = "";
      model_ = "";
      host_ = "";
      username_ = "";
      password_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new OpenTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODEL_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object model_ = "";
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        model_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Модель
     * </pre>
     *
     * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      java.lang.Object ref = model_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        model_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object host_ = "";
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The host.
     */
    @java.lang.Override
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        host_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Хост
     * </pre>
     *
     * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for host.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERNAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object username_ = "";
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The username.
     */
    @java.lang.Override
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Имя пользователя
     * </pre>
     *
     * <code>string username = 4;</code>
     * @return The bytes for username.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Пароль
     * </pre>
     *
     * <code>string password = 5;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 6;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int RELAY_INDEX_FIELD_NUMBER = 7;
    private com.google.protobuf.Int32Value relayIndex_;
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 7;</code>
     * @return Whether the relayIndex field is set.
     */
    @java.lang.Override
    public boolean hasRelayIndex() {
      return relayIndex_ != null;
    }
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 7;</code>
     * @return The relayIndex.
     */
    @java.lang.Override
    public com.google.protobuf.Int32Value getRelayIndex() {
      return relayIndex_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
    }
    /**
     * <pre>
     * Номер реле
     * </pre>
     *
     * <code>.google.protobuf.Int32Value relay_index = 7;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Int32ValueOrBuilder getRelayIndexOrBuilder() {
      return relayIndex_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
    }

    public static final int DELAY_FIELD_NUMBER = 8;
    private com.google.protobuf.Int32Value delay_;
    /**
     * <pre>
     * Задержка в секундах.
     * Если не передано, то полставляется значение по умолчанию (5)
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 8;</code>
     * @return Whether the delay field is set.
     */
    @java.lang.Override
    public boolean hasDelay() {
      return delay_ != null;
    }
    /**
     * <pre>
     * Задержка в секундах.
     * Если не передано, то полставляется значение по умолчанию (5)
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 8;</code>
     * @return The delay.
     */
    @java.lang.Override
    public com.google.protobuf.Int32Value getDelay() {
      return delay_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
    }
    /**
     * <pre>
     * Задержка в секундах.
     * Если не передано, то полставляется значение по умолчанию (5)
     * </pre>
     *
     * <code>.google.protobuf.Int32Value delay = 8;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Int32ValueOrBuilder getDelayOrBuilder() {
      return delay_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, password_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(6, deviceId_);
      }
      if (relayIndex_ != null) {
        output.writeMessage(7, getRelayIndex());
      }
      if (delay_ != null) {
        output.writeMessage(8, getDelay());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(model_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(host_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(username_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, username_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, password_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deviceId_);
      }
      if (relayIndex_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getRelayIndex());
      }
      if (delay_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getDelay());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getModel()
          .equals(other.getModel())) return false;
      if (!getHost()
          .equals(other.getHost())) return false;
      if (!getUsername()
          .equals(other.getUsername())) return false;
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (hasRelayIndex() != other.hasRelayIndex()) return false;
      if (hasRelayIndex()) {
        if (!getRelayIndex()
            .equals(other.getRelayIndex())) return false;
      }
      if (hasDelay() != other.hasDelay()) return false;
      if (hasDelay()) {
        if (!getDelay()
            .equals(other.getDelay())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + MODEL_FIELD_NUMBER;
      hash = (53 * hash) + getModel().hashCode();
      hash = (37 * hash) + HOST_FIELD_NUMBER;
      hash = (53 * hash) + getHost().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (hasRelayIndex()) {
        hash = (37 * hash) + RELAY_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getRelayIndex().hashCode();
      }
      if (hasDelay()) {
        hash = (37 * hash) + DELAY_FIELD_NUMBER;
        hash = (53 * hash) + getDelay().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на открытие устройства.
     * Очередь key.device.open
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.OpenTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.OpenTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        model_ = "";
        host_ = "";
        username_ = "";
        password_ = "";
        deviceId_ = 0;
        relayIndex_ = null;
        if (relayIndexBuilder_ != null) {
          relayIndexBuilder_.dispose();
          relayIndexBuilder_ = null;
        }
        delay_ = null;
        if (delayBuilder_ != null) {
          delayBuilder_.dispose();
          delayBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_OpenTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.model_ = model_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.host_ = host_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.username_ = username_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.password_ = password_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.relayIndex_ = relayIndexBuilder_ == null
              ? relayIndex_
              : relayIndexBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.delay_ = delayBuilder_ == null
              ? delay_
              : delayBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getModel().isEmpty()) {
          model_ = other.model_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getHost().isEmpty()) {
          host_ = other.host_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (other.hasRelayIndex()) {
          mergeRelayIndex(other.getRelayIndex());
        }
        if (other.hasDelay()) {
          mergeDelay(other.getDelay());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                model_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                host_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                username_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                password_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                input.readMessage(
                    getRelayIndexFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getDelayFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object model_ = "";
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The model.
       */
      public java.lang.String getModel() {
        java.lang.Object ref = model_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          model_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for model.
       */
      public com.google.protobuf.ByteString
          getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        model_ = getDefaultInstance().getModel();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Модель
       * </pre>
       *
       * <code>string model = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        model_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The host.
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          host_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for host.
       */
      public com.google.protobuf.ByteString
          getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The host to set.
       * @return This builder for chaining.
       */
      public Builder setHost(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearHost() {
        host_ = getDefaultInstance().getHost();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Хост
       * </pre>
       *
       * <code>string host = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for host to set.
       * @return This builder for chaining.
       */
      public Builder setHostBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        host_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The username.
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return The bytes for username.
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The username to set.
       * @return This builder for chaining.
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsername() {
        username_ = getDefaultInstance().getUsername();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Имя пользователя
       * </pre>
       *
       * <code>string username = 4;</code>
       * @param value The bytes for username to set.
       * @return This builder for chaining.
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        username_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Пароль
       * </pre>
       *
       * <code>string password = 5;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        password_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 6 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Int32Value relayIndex_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> relayIndexBuilder_;
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       * @return Whether the relayIndex field is set.
       */
      public boolean hasRelayIndex() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       * @return The relayIndex.
       */
      public com.google.protobuf.Int32Value getRelayIndex() {
        if (relayIndexBuilder_ == null) {
          return relayIndex_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
        } else {
          return relayIndexBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       */
      public Builder setRelayIndex(com.google.protobuf.Int32Value value) {
        if (relayIndexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          relayIndex_ = value;
        } else {
          relayIndexBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       */
      public Builder setRelayIndex(
          com.google.protobuf.Int32Value.Builder builderForValue) {
        if (relayIndexBuilder_ == null) {
          relayIndex_ = builderForValue.build();
        } else {
          relayIndexBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       */
      public Builder mergeRelayIndex(com.google.protobuf.Int32Value value) {
        if (relayIndexBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            relayIndex_ != null &&
            relayIndex_ != com.google.protobuf.Int32Value.getDefaultInstance()) {
            getRelayIndexBuilder().mergeFrom(value);
          } else {
            relayIndex_ = value;
          }
        } else {
          relayIndexBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       */
      public Builder clearRelayIndex() {
        bitField0_ = (bitField0_ & ~0x00000040);
        relayIndex_ = null;
        if (relayIndexBuilder_ != null) {
          relayIndexBuilder_.dispose();
          relayIndexBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       */
      public com.google.protobuf.Int32Value.Builder getRelayIndexBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getRelayIndexFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       */
      public com.google.protobuf.Int32ValueOrBuilder getRelayIndexOrBuilder() {
        if (relayIndexBuilder_ != null) {
          return relayIndexBuilder_.getMessageOrBuilder();
        } else {
          return relayIndex_ == null ?
              com.google.protobuf.Int32Value.getDefaultInstance() : relayIndex_;
        }
      }
      /**
       * <pre>
       * Номер реле
       * </pre>
       *
       * <code>.google.protobuf.Int32Value relay_index = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> 
          getRelayIndexFieldBuilder() {
        if (relayIndexBuilder_ == null) {
          relayIndexBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>(
                  getRelayIndex(),
                  getParentForChildren(),
                  isClean());
          relayIndex_ = null;
        }
        return relayIndexBuilder_;
      }

      private com.google.protobuf.Int32Value delay_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> delayBuilder_;
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       * @return Whether the delay field is set.
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       * @return The delay.
       */
      public com.google.protobuf.Int32Value getDelay() {
        if (delayBuilder_ == null) {
          return delay_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
        } else {
          return delayBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       */
      public Builder setDelay(com.google.protobuf.Int32Value value) {
        if (delayBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          delay_ = value;
        } else {
          delayBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       */
      public Builder setDelay(
          com.google.protobuf.Int32Value.Builder builderForValue) {
        if (delayBuilder_ == null) {
          delay_ = builderForValue.build();
        } else {
          delayBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       */
      public Builder mergeDelay(com.google.protobuf.Int32Value value) {
        if (delayBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            delay_ != null &&
            delay_ != com.google.protobuf.Int32Value.getDefaultInstance()) {
            getDelayBuilder().mergeFrom(value);
          } else {
            delay_ = value;
          }
        } else {
          delayBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       */
      public Builder clearDelay() {
        bitField0_ = (bitField0_ & ~0x00000080);
        delay_ = null;
        if (delayBuilder_ != null) {
          delayBuilder_.dispose();
          delayBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       */
      public com.google.protobuf.Int32Value.Builder getDelayBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getDelayFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       */
      public com.google.protobuf.Int32ValueOrBuilder getDelayOrBuilder() {
        if (delayBuilder_ != null) {
          return delayBuilder_.getMessageOrBuilder();
        } else {
          return delay_ == null ?
              com.google.protobuf.Int32Value.getDefaultInstance() : delay_;
        }
      }
      /**
       * <pre>
       * Задержка в секундах.
       * Если не передано, то полставляется значение по умолчанию (5)
       * </pre>
       *
       * <code>.google.protobuf.Int32Value delay = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> 
          getDelayFieldBuilder() {
        if (delayBuilder_ == null) {
          delayBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>(
                  getDelay(),
                  getParentForChildren(),
                  isClean());
          delay_ = null;
        }
        return delayBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.OpenTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.OpenTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OpenTask>
        PARSER = new com.google.protobuf.AbstractParser<OpenTask>() {
      @java.lang.Override
      public OpenTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<OpenTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<OpenTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.OpenTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteSipAccountTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteSipAccountTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Дата и время удаления устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the deletedAt field is set.
     */
    boolean hasDeletedAt();
    /**
     * <pre>
     * Дата и время удаления устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deletedAt.
     */
    com.google.protobuf.Timestamp getDeletedAt();
    /**
     * <pre>
     * Дата и время удаления устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    com.google.protobuf.TimestampOrBuilder getDeletedAtOrBuilder();

    /**
     * <pre>
     * Sip-login устройства
     * </pre>
     *
     * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sipLogin.
     */
    java.lang.String getSipLogin();
    /**
     * <pre>
     * Sip-login устройства
     * </pre>
     *
     * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sipLogin.
     */
    com.google.protobuf.ByteString
        getSipLoginBytes();
  }
  /**
   * <pre>
   * Задача на удаление sip-аккаунта.
   * Очередь key.device.delete_sip_account
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteSipAccountTask}
   */
  public static final class DeleteSipAccountTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteSipAccountTask)
      DeleteSipAccountTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteSipAccountTask.newBuilder() to construct.
    private DeleteSipAccountTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteSipAccountTask() {
      requestId_ = "";
      sipLogin_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteSipAccountTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSipAccountTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSipAccountTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    private int deviceId_ = 0;
    /**
     * <pre>
     * Идентификатор устройства
     * </pre>
     *
     * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      return deviceId_;
    }

    public static final int DELETED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp deletedAt_;
    /**
     * <pre>
     * Дата и время удаления устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return Whether the deletedAt field is set.
     */
    @java.lang.Override
    public boolean hasDeletedAt() {
      return deletedAt_ != null;
    }
    /**
     * <pre>
     * Дата и время удаления устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deletedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getDeletedAt() {
      return deletedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : deletedAt_;
    }
    /**
     * <pre>
     * Дата и время удаления устройства
     * </pre>
     *
     * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getDeletedAtOrBuilder() {
      return deletedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : deletedAt_;
    }

    public static final int SIP_LOGIN_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sipLogin_ = "";
    /**
     * <pre>
     * Sip-login устройства
     * </pre>
     *
     * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The sipLogin.
     */
    @java.lang.Override
    public java.lang.String getSipLogin() {
      java.lang.Object ref = sipLogin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        sipLogin_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Sip-login устройства
     * </pre>
     *
     * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for sipLogin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSipLoginBytes() {
      java.lang.Object ref = sipLogin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sipLogin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (deviceId_ != 0) {
        output.writeInt32(2, deviceId_);
      }
      if (deletedAt_ != null) {
        output.writeMessage(3, getDeletedAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sipLogin_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, sipLogin_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      if (deviceId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deviceId_);
      }
      if (deletedAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getDeletedAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sipLogin_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, sipLogin_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (getDeviceId()
          != other.getDeviceId()) return false;
      if (hasDeletedAt() != other.hasDeletedAt()) return false;
      if (hasDeletedAt()) {
        if (!getDeletedAt()
            .equals(other.getDeletedAt())) return false;
      }
      if (!getSipLogin()
          .equals(other.getSipLogin())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId();
      if (hasDeletedAt()) {
        hash = (37 * hash) + DELETED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getDeletedAt().hashCode();
      }
      hash = (37 * hash) + SIP_LOGIN_FIELD_NUMBER;
      hash = (53 * hash) + getSipLogin().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на удаление sip-аккаунта.
     * Очередь key.device.delete_sip_account
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteSipAccountTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteSipAccountTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSipAccountTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSipAccountTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceId_ = 0;
        deletedAt_ = null;
        if (deletedAtBuilder_ != null) {
          deletedAtBuilder_.dispose();
          deletedAtBuilder_ = null;
        }
        sipLogin_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteSipAccountTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.deviceId_ = deviceId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.deletedAt_ = deletedAtBuilder_ == null
              ? deletedAt_
              : deletedAtBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.sipLogin_ = sipLogin_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getDeviceId() != 0) {
          setDeviceId(other.getDeviceId());
        }
        if (other.hasDeletedAt()) {
          mergeDeletedAt(other.getDeletedAt());
        }
        if (!other.getSipLogin().isEmpty()) {
          sipLogin_ = other.sipLogin_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                deviceId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getDeletedAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                sipLogin_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int deviceId_ ;
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return deviceId_;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {

        deviceId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства
       * </pre>
       *
       * <code>int32 device_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp deletedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> deletedAtBuilder_;
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the deletedAt field is set.
       */
      public boolean hasDeletedAt() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deletedAt.
       */
      public com.google.protobuf.Timestamp getDeletedAt() {
        if (deletedAtBuilder_ == null) {
          return deletedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : deletedAt_;
        } else {
          return deletedAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setDeletedAt(com.google.protobuf.Timestamp value) {
        if (deletedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deletedAt_ = value;
        } else {
          deletedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder setDeletedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (deletedAtBuilder_ == null) {
          deletedAt_ = builderForValue.build();
        } else {
          deletedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder mergeDeletedAt(com.google.protobuf.Timestamp value) {
        if (deletedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            deletedAt_ != null &&
            deletedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getDeletedAtBuilder().mergeFrom(value);
          } else {
            deletedAt_ = value;
          }
        } else {
          deletedAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public Builder clearDeletedAt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        deletedAt_ = null;
        if (deletedAtBuilder_ != null) {
          deletedAtBuilder_.dispose();
          deletedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.Timestamp.Builder getDeletedAtBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getDeletedAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      public com.google.protobuf.TimestampOrBuilder getDeletedAtOrBuilder() {
        if (deletedAtBuilder_ != null) {
          return deletedAtBuilder_.getMessageOrBuilder();
        } else {
          return deletedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : deletedAt_;
        }
      }
      /**
       * <pre>
       * Дата и время удаления устройства
       * </pre>
       *
       * <code>.google.protobuf.Timestamp deleted_at = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getDeletedAtFieldBuilder() {
        if (deletedAtBuilder_ == null) {
          deletedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getDeletedAt(),
                  getParentForChildren(),
                  isClean());
          deletedAt_ = null;
        }
        return deletedAtBuilder_;
      }

      private java.lang.Object sipLogin_ = "";
      /**
       * <pre>
       * Sip-login устройства
       * </pre>
       *
       * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The sipLogin.
       */
      public java.lang.String getSipLogin() {
        java.lang.Object ref = sipLogin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sipLogin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Sip-login устройства
       * </pre>
       *
       * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for sipLogin.
       */
      public com.google.protobuf.ByteString
          getSipLoginBytes() {
        java.lang.Object ref = sipLogin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sipLogin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Sip-login устройства
       * </pre>
       *
       * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The sipLogin to set.
       * @return This builder for chaining.
       */
      public Builder setSipLogin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sipLogin_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip-login устройства
       * </pre>
       *
       * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearSipLogin() {
        sipLogin_ = getDefaultInstance().getSipLogin();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sip-login устройства
       * </pre>
       *
       * <code>string sip_login = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for sipLogin to set.
       * @return This builder for chaining.
       */
      public Builder setSipLoginBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sipLogin_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteSipAccountTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteSipAccountTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteSipAccountTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteSipAccountTask>() {
      @java.lang.Override
      public DeleteSipAccountTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteSipAccountTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteSipAccountTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteSipAccountTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CreateDeviceAccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.CreateDeviceAccessTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return A list containing the deviceIds.
     */
    java.util.List<java.lang.Integer> getDeviceIdsList();
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The count of deviceIds.
     */
    int getDeviceIdsCount();
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param index The index of the element to return.
     * @return The deviceIds at the given index.
     */
    int getDeviceIds(int index);

    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The enum numeric value on the wire for deviceAccessAccessorType.
     */
    int getDeviceAccessAccessorTypeValue();
    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceAccessAccessorType.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType getDeviceAccessAccessorType();

    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The accessorId.
     */
    java.lang.String getAccessorId();
    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for accessorId.
     */
    com.google.protobuf.ByteString
        getAccessorIdBytes();
  }
  /**
   * <pre>
   * Задача на создание доступа к устройству.
   * Очередь key.device.create_device_access
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.CreateDeviceAccessTask}
   */
  public static final class CreateDeviceAccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.CreateDeviceAccessTask)
      CreateDeviceAccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateDeviceAccessTask.newBuilder() to construct.
    private CreateDeviceAccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CreateDeviceAccessTask() {
      requestId_ = "";
      deviceIds_ = emptyIntList();
      deviceAccessAccessorType_ = 0;
      accessorId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CreateDeviceAccessTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CreateDeviceAccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CreateDeviceAccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_IDS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList deviceIds_;
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return A list containing the deviceIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getDeviceIdsList() {
      return deviceIds_;
    }
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The count of deviceIds.
     */
    public int getDeviceIdsCount() {
      return deviceIds_.size();
    }
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param index The index of the element to return.
     * @return The deviceIds at the given index.
     */
    public int getDeviceIds(int index) {
      return deviceIds_.getInt(index);
    }
    private int deviceIdsMemoizedSerializedSize = -1;

    public static final int DEVICE_ACCESS_ACCESSOR_TYPE_FIELD_NUMBER = 3;
    private int deviceAccessAccessorType_ = 0;
    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The enum numeric value on the wire for deviceAccessAccessorType.
     */
    @java.lang.Override public int getDeviceAccessAccessorTypeValue() {
      return deviceAccessAccessorType_;
    }
    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceAccessAccessorType.
     */
    @java.lang.Override public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType getDeviceAccessAccessorType() {
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.forNumber(deviceAccessAccessorType_);
      return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.UNRECOGNIZED : result;
    }

    public static final int ACCESSOR_ID_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object accessorId_ = "";
    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The accessorId.
     */
    @java.lang.Override
    public java.lang.String getAccessorId() {
      java.lang.Object ref = accessorId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        accessorId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for accessorId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAccessorIdBytes() {
      java.lang.Object ref = accessorId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accessorId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (getDeviceIdsList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(deviceIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < deviceIds_.size(); i++) {
        output.writeInt32NoTag(deviceIds_.getInt(i));
      }
      if (deviceAccessAccessorType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.ACCESSOR_TYPE_UNKNOWN.getNumber()) {
        output.writeEnum(3, deviceAccessAccessorType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(accessorId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, accessorId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < deviceIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(deviceIds_.getInt(i));
        }
        size += dataSize;
        if (!getDeviceIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        deviceIdsMemoizedSerializedSize = dataSize;
      }
      if (deviceAccessAccessorType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.ACCESSOR_TYPE_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, deviceAccessAccessorType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(accessorId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, accessorId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getDeviceIdsList()
          .equals(other.getDeviceIdsList())) return false;
      if (deviceAccessAccessorType_ != other.deviceAccessAccessorType_) return false;
      if (!getAccessorId()
          .equals(other.getAccessorId())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      if (getDeviceIdsCount() > 0) {
        hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getDeviceIdsList().hashCode();
      }
      hash = (37 * hash) + DEVICE_ACCESS_ACCESSOR_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + deviceAccessAccessorType_;
      hash = (37 * hash) + ACCESSOR_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAccessorId().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на создание доступа к устройству.
     * Очередь key.device.create_device_access
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.CreateDeviceAccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.CreateDeviceAccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CreateDeviceAccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CreateDeviceAccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceIds_ = emptyIntList();
        deviceAccessAccessorType_ = 0;
        accessorId_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_CreateDeviceAccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask result) {
        if (((bitField0_ & 0x00000002) != 0)) {
          deviceIds_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.deviceIds_ = deviceIds_;
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.deviceAccessAccessorType_ = deviceAccessAccessorType_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.accessorId_ = accessorId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.deviceIds_.isEmpty()) {
          if (deviceIds_.isEmpty()) {
            deviceIds_ = other.deviceIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureDeviceIdsIsMutable();
            deviceIds_.addAll(other.deviceIds_);
          }
          onChanged();
        }
        if (other.deviceAccessAccessorType_ != 0) {
          setDeviceAccessAccessorTypeValue(other.getDeviceAccessAccessorTypeValue());
        }
        if (!other.getAccessorId().isEmpty()) {
          accessorId_ = other.accessorId_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                int v = input.readInt32();
                ensureDeviceIdsIsMutable();
                deviceIds_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureDeviceIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  deviceIds_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              case 24: {
                deviceAccessAccessorType_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                accessorId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList deviceIds_ = emptyIntList();
      private void ensureDeviceIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          deviceIds_ = mutableCopy(deviceIds_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return A list containing the deviceIds.
       */
      public java.util.List<java.lang.Integer>
          getDeviceIdsList() {
        return ((bitField0_ & 0x00000002) != 0) ?
                 java.util.Collections.unmodifiableList(deviceIds_) : deviceIds_;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The count of deviceIds.
       */
      public int getDeviceIdsCount() {
        return deviceIds_.size();
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param index The index of the element to return.
       * @return The deviceIds at the given index.
       */
      public int getDeviceIds(int index) {
        return deviceIds_.getInt(index);
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param index The index to set the value at.
       * @param value The deviceIds to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceIds(
          int index, int value) {

        ensureDeviceIdsIsMutable();
        deviceIds_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceIds to add.
       * @return This builder for chaining.
       */
      public Builder addDeviceIds(int value) {

        ensureDeviceIdsIsMutable();
        deviceIds_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param values The deviceIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllDeviceIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureDeviceIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, deviceIds_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceIds() {
        deviceIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private int deviceAccessAccessorType_ = 0;
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The enum numeric value on the wire for deviceAccessAccessorType.
       */
      @java.lang.Override public int getDeviceAccessAccessorTypeValue() {
        return deviceAccessAccessorType_;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The enum numeric value on the wire for deviceAccessAccessorType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceAccessAccessorTypeValue(int value) {
        deviceAccessAccessorType_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceAccessAccessorType.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType getDeviceAccessAccessorType() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.forNumber(deviceAccessAccessorType_);
        return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceAccessAccessorType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceAccessAccessorType(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        deviceAccessAccessorType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceAccessAccessorType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        deviceAccessAccessorType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object accessorId_ = "";
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The accessorId.
       */
      public java.lang.String getAccessorId() {
        java.lang.Object ref = accessorId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accessorId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for accessorId.
       */
      public com.google.protobuf.ByteString
          getAccessorIdBytes() {
        java.lang.Object ref = accessorId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accessorId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The accessorId to set.
       * @return This builder for chaining.
       */
      public Builder setAccessorId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        accessorId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearAccessorId() {
        accessorId_ = getDefaultInstance().getAccessorId();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for accessorId to set.
       * @return This builder for chaining.
       */
      public Builder setAccessorIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        accessorId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.CreateDeviceAccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.CreateDeviceAccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CreateDeviceAccessTask>
        PARSER = new com.google.protobuf.AbstractParser<CreateDeviceAccessTask>() {
      @java.lang.Override
      public CreateDeviceAccessTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<CreateDeviceAccessTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CreateDeviceAccessTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.CreateDeviceAccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteDeviceAccessTaskOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.device.v1.DeleteDeviceAccessTask)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return A list containing the deviceIds.
     */
    java.util.List<java.lang.Integer> getDeviceIdsList();
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The count of deviceIds.
     */
    int getDeviceIdsCount();
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param index The index of the element to return.
     * @return The deviceIds at the given index.
     */
    int getDeviceIds(int index);

    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The enum numeric value on the wire for deviceAccessAccessorType.
     */
    int getDeviceAccessAccessorTypeValue();
    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceAccessAccessorType.
     */
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType getDeviceAccessAccessorType();

    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The accessorId.
     */
    java.lang.String getAccessorId();
    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for accessorId.
     */
    com.google.protobuf.ByteString
        getAccessorIdBytes();
  }
  /**
   * <pre>
   * Задача на удаление доступа к устройству.
   * Очередь key.device.delete_device_access
   * </pre>
   *
   * Protobuf type {@code keyapis.device.v1.DeleteDeviceAccessTask}
   */
  public static final class DeleteDeviceAccessTask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.device.v1.DeleteDeviceAccessTask)
      DeleteDeviceAccessTaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteDeviceAccessTask.newBuilder() to construct.
    private DeleteDeviceAccessTask(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteDeviceAccessTask() {
      requestId_ = "";
      deviceIds_ = emptyIntList();
      deviceAccessAccessorType_ = 0;
      accessorId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteDeviceAccessTask();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteDeviceAccessTask_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteDeviceAccessTask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask.Builder.class);
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestId_ = "";
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        requestId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      java.lang.Object ref = requestId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_IDS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList deviceIds_;
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return A list containing the deviceIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getDeviceIdsList() {
      return deviceIds_;
    }
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The count of deviceIds.
     */
    public int getDeviceIdsCount() {
      return deviceIds_.size();
    }
    /**
     * <pre>
     * Идентификаторы устройства.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param index The index of the element to return.
     * @return The deviceIds at the given index.
     */
    public int getDeviceIds(int index) {
      return deviceIds_.getInt(index);
    }
    private int deviceIdsMemoizedSerializedSize = -1;

    public static final int DEVICE_ACCESS_ACCESSOR_TYPE_FIELD_NUMBER = 3;
    private int deviceAccessAccessorType_ = 0;
    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The enum numeric value on the wire for deviceAccessAccessorType.
     */
    @java.lang.Override public int getDeviceAccessAccessorTypeValue() {
      return deviceAccessAccessorType_;
    }
    /**
     * <pre>
     * Тип субъекта доступа
     * </pre>
     *
     * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The deviceAccessAccessorType.
     */
    @java.lang.Override public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType getDeviceAccessAccessorType() {
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.forNumber(deviceAccessAccessorType_);
      return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.UNRECOGNIZED : result;
    }

    public static final int ACCESSOR_ID_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object accessorId_ = "";
    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The accessorId.
     */
    @java.lang.Override
    public java.lang.String getAccessorId() {
      java.lang.Object ref = accessorId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        accessorId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Идентификатор субъекта доступа.
     * # Диапазон: 1..36
     * </pre>
     *
     * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for accessorId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAccessorIdBytes() {
      java.lang.Object ref = accessorId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accessorId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, requestId_);
      }
      if (getDeviceIdsList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(deviceIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < deviceIds_.size(); i++) {
        output.writeInt32NoTag(deviceIds_.getInt(i));
      }
      if (deviceAccessAccessorType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.ACCESSOR_TYPE_UNKNOWN.getNumber()) {
        output.writeEnum(3, deviceAccessAccessorType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(accessorId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, accessorId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requestId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, requestId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < deviceIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(deviceIds_.getInt(i));
        }
        size += dataSize;
        if (!getDeviceIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        deviceIdsMemoizedSerializedSize = dataSize;
      }
      if (deviceAccessAccessorType_ != ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.ACCESSOR_TYPE_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, deviceAccessAccessorType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(accessorId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, accessorId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask)) {
        return super.equals(obj);
      }
      ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask other = (ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask) obj;

      if (!getRequestId()
          .equals(other.getRequestId())) return false;
      if (!getDeviceIdsList()
          .equals(other.getDeviceIdsList())) return false;
      if (deviceAccessAccessorType_ != other.deviceAccessAccessorType_) return false;
      if (!getAccessorId()
          .equals(other.getAccessorId())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRequestId().hashCode();
      if (getDeviceIdsCount() > 0) {
        hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getDeviceIdsList().hashCode();
      }
      hash = (37 * hash) + DEVICE_ACCESS_ACCESSOR_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + deviceAccessAccessorType_;
      hash = (37 * hash) + ACCESSOR_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAccessorId().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Задача на удаление доступа к устройству.
     * Очередь key.device.delete_device_access
     * </pre>
     *
     * Protobuf type {@code keyapis.device.v1.DeleteDeviceAccessTask}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.device.v1.DeleteDeviceAccessTask)
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTaskOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteDeviceAccessTask_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteDeviceAccessTask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask.class, ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask.Builder.class);
      }

      // Construct using ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = "";
        deviceIds_ = emptyIntList();
        deviceAccessAccessorType_ = 0;
        accessorId_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.internal_static_keyapis_device_v1_DeleteDeviceAccessTask_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask getDefaultInstanceForType() {
        return ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask build() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask buildPartial() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask result = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask result) {
        if (((bitField0_ & 0x00000002) != 0)) {
          deviceIds_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.deviceIds_ = deviceIds_;
      }

      private void buildPartial0(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.deviceAccessAccessorType_ = deviceAccessAccessorType_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.accessorId_ = accessorId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask) {
          return mergeFrom((ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask other) {
        if (other == ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask.getDefaultInstance()) return this;
        if (!other.getRequestId().isEmpty()) {
          requestId_ = other.requestId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.deviceIds_.isEmpty()) {
          if (deviceIds_.isEmpty()) {
            deviceIds_ = other.deviceIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureDeviceIdsIsMutable();
            deviceIds_.addAll(other.deviceIds_);
          }
          onChanged();
        }
        if (other.deviceAccessAccessorType_ != 0) {
          setDeviceAccessAccessorTypeValue(other.getDeviceAccessAccessorTypeValue());
        }
        if (!other.getAccessorId().isEmpty()) {
          accessorId_ = other.accessorId_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                requestId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                int v = input.readInt32();
                ensureDeviceIdsIsMutable();
                deviceIds_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureDeviceIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  deviceIds_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              case 24: {
                deviceAccessAccessorType_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                accessorId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object requestId_ = "";
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      public java.lang.String getRequestId() {
        java.lang.Object ref = requestId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        java.lang.Object ref = requestId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        requestId_ = getDefaultInstance().getRequestId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList deviceIds_ = emptyIntList();
      private void ensureDeviceIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          deviceIds_ = mutableCopy(deviceIds_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return A list containing the deviceIds.
       */
      public java.util.List<java.lang.Integer>
          getDeviceIdsList() {
        return ((bitField0_ & 0x00000002) != 0) ?
                 java.util.Collections.unmodifiableList(deviceIds_) : deviceIds_;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The count of deviceIds.
       */
      public int getDeviceIdsCount() {
        return deviceIds_.size();
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param index The index of the element to return.
       * @return The deviceIds at the given index.
       */
      public int getDeviceIds(int index) {
        return deviceIds_.getInt(index);
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param index The index to set the value at.
       * @param value The deviceIds to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceIds(
          int index, int value) {

        ensureDeviceIdsIsMutable();
        deviceIds_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceIds to add.
       * @return This builder for chaining.
       */
      public Builder addDeviceIds(int value) {

        ensureDeviceIdsIsMutable();
        deviceIds_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param values The deviceIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllDeviceIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureDeviceIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, deviceIds_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификаторы устройства.
       * # Диапазон: 0..2147483647
       * </pre>
       *
       * <code>repeated int32 device_ids = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceIds() {
        deviceIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private int deviceAccessAccessorType_ = 0;
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The enum numeric value on the wire for deviceAccessAccessorType.
       */
      @java.lang.Override public int getDeviceAccessAccessorTypeValue() {
        return deviceAccessAccessorType_;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The enum numeric value on the wire for deviceAccessAccessorType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceAccessAccessorTypeValue(int value) {
        deviceAccessAccessorType_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The deviceAccessAccessorType.
       */
      @java.lang.Override
      public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType getDeviceAccessAccessorType() {
        ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType result = ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.forNumber(deviceAccessAccessorType_);
        return result == null ? ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The deviceAccessAccessorType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceAccessAccessorType(ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeviceAccess.AccessorType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        deviceAccessAccessorType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип субъекта доступа
       * </pre>
       *
       * <code>.keyapis.device.v1.DeviceAccess.AccessorType device_access_accessor_type = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceAccessAccessorType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        deviceAccessAccessorType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object accessorId_ = "";
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The accessorId.
       */
      public java.lang.String getAccessorId() {
        java.lang.Object ref = accessorId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accessorId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for accessorId.
       */
      public com.google.protobuf.ByteString
          getAccessorIdBytes() {
        java.lang.Object ref = accessorId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accessorId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The accessorId to set.
       * @return This builder for chaining.
       */
      public Builder setAccessorId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        accessorId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearAccessorId() {
        accessorId_ = getDefaultInstance().getAccessorId();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор субъекта доступа.
       * # Диапазон: 1..36
       * </pre>
       *
       * <code>string accessor_id = 4 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for accessorId to set.
       * @return This builder for chaining.
       */
      public Builder setAccessorIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        accessorId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.device.v1.DeleteDeviceAccessTask)
    }

    // @@protoc_insertion_point(class_scope:keyapis.device.v1.DeleteDeviceAccessTask)
    private static final ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask();
    }

    public static ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeleteDeviceAccessTask>
        PARSER = new com.google.protobuf.AbstractParser<DeleteDeviceAccessTask>() {
      @java.lang.Override
      public DeleteDeviceAccessTask parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeleteDeviceAccessTask> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeleteDeviceAccessTask> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.device.v1.KeyapisDeviceV1Proto.DeleteDeviceAccessTask getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_EmergencyCallSettings_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_EmergencyCallSettings_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_CmsServiceAvailableTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_CmsServiceAvailableTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ControlDeviceTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ControlDeviceTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ControlDeviceResultTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ControlDeviceResultTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_BlockCmsPhonesTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_BlockCmsPhonesTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ActivateCmsPhonesTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ActivateCmsPhonesTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_CmsAvailableTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_CmsAvailableTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_SipRoom_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_SipRoom_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_SipRoomError_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_SipRoomError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_Rfid_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_Rfid_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_Code_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_Code_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_RfidError_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_RfidError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_CodeError_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_CodeError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddSl3RfidsTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddSl3RfidsTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddRfidsTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddRfidsTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddCodesTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddCodesTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddRfidsSuccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddRfidsSuccessTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddRfidsFailTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddRfidsFailTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddCodesSuccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddCodesSuccessTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_AddCodesFailTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_AddCodesFailTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteSl3RfidsTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteSl3RfidsTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteRfidsTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteRfidsTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteCodesTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteCodesTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteRfidsFailTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteRfidsFailTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteCodesSuccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteCodesSuccessTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteCodesFailTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteCodesFailTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_OpenAccessPointTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_OpenAccessPointTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_OpenTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_OpenTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteSipAccountTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteSipAccountTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_CreateDeviceAccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_CreateDeviceAccessTask_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_device_v1_DeleteDeviceAccessTask_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_device_v1_DeleteDeviceAccessTask_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n0keyapis/device/v1/keyapis_device_event" +
      "s_v1.proto\022\021keyapis.device.v1\032\037google/ap" +
      "i/field_behavior.proto\032\037google/protobuf/" +
      "timestamp.proto\032\036google/protobuf/wrapper" +
      "s.proto\0320keyapis/device/v1/keyapis_devic" +
      "e_device_v1.proto\0320keyapis/device/v1/key" +
      "apis_device_access_v1.proto\"\314\n\n\023Configur" +
      "eDeviceTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\022\n\005" +
      "model\030\002 \001(\tB\003\340A\002\022\021\n\004host\030\003 \001(\tB\003\340A\002\022\025\n\010u" +
      "sername\030\004 \001(\tB\003\340A\002\022\025\n\010password\030\005 \001(\tB\003\340A" +
      "\002\022\026\n\tdevice_id\030\006 \001(\005B\003\340A\002\022.\n\006preset\030\007 \001(" +
      "\0132\031.keyapis.device.v1.PresetB\003\340A\002\022F\n\013sip" +
      "_account\030\010 \001(\01321.keyapis.device.v1.Confi" +
      "gureDeviceTask.SipAccount\022-\n\tsip_rooms\030\t" +
      " \003(\0132\032.keyapis.device.v1.SipRoom\0229\n\004gate" +
      "\030\n \001(\0132+.keyapis.device.v1.ConfigureDevi" +
      "ceTask.Gate\022&\n\005rfids\030\013 \003(\0132\027.keyapis.dev" +
      "ice.v1.Rfid\022&\n\005codes\030\014 \003(\0132\027.keyapis.dev" +
      "ice.v1.Code\022\031\n\014ntp_timezone\030\r \001(\tB\003\340A\002\0227" +
      "\n\003sl3\030\016 \001(\0132*.keyapis.device.v1.Configur" +
      "eDeviceTask.Sl3\022I\n\027emergency_call_settin" +
      "gs\030\017 \001(\0132(.keyapis.device.v1.EmergencyCa" +
      "llSettings\032^\n\nSipAccount\022\021\n\004name\030\001 \001(\tB\003" +
      "\340A\002\022\023\n\006number\030\002 \001(\tB\003\340A\002\022\021\n\004user\030\003 \001(\tB\003" +
      "\340A\002\022\025\n\010password\030\004 \001(\tB\003\340A\002\032\374\002\n\004Gate\022\026\n\ti" +
      "s_active\030\001 \001(\010B\003\340A\002\022V\n\016relay_settings\030\002 " +
      "\003(\01329.keyapis.device.v1.ConfigureDeviceT" +
      "ask.Gate.RelaySettingsB\003\340A\002\022O\n\013room_rang" +
      "es\030\003 \003(\01325.keyapis.device.v1.ConfigureDe" +
      "viceTask.Gate.RoomRangeB\003\340A\002\032<\n\rRelaySet" +
      "tings\022\026\n\tis_active\030\001 \001(\010B\003\340A\002\022\023\n\013relay_i" +
      "ndex\030\002 \001(\005\032u\n\tRoomRange\022\024\n\007address\030\001 \001(\t" +
      "B\003\340A\002\022\023\n\006prefix\030\002 \001(\tB\003\340A\002\022\036\n\021first_room" +
      "_number\030\003 \001(\tB\003\340A\002\022\035\n\020last_room_number\030\004" +
      " \001(\tB\003\340A\002\032\210\001\n\021EncryptionProfile\022\032\n\rsecto" +
      "r_number\030\001 \001(\005B\003\340A\002\022\031\n\014block_number\030\002 \001(" +
      "\005B\003\340A\002\022\024\n\007aes_key\030\003 \001(\tB\003\340A\002\022\023\n\013start_in" +
      "dex\030\004 \001(\005\022\021\n\tend_index\030\005 \001(\005\032t\n\003Sl3\022\027\n\ni" +
      "s_enabled\030\001 \001(\010B\003\340A\002\022T\n\022encryption_profi" +
      "le\030\002 \001(\01328.keyapis.device.v1.ConfigureDe" +
      "viceTask.EncryptionProfile\"\244\002\n\025Emergency" +
      "CallSettings\022\031\n\021is_call_available\030\001 \001(\010\022" +
      "a\n\030emergency_call_parameter\030\002 \001(\0132?.keya" +
      "pis.device.v1.EmergencyCallSettings.Emer" +
      "gencyCallParameter\032\214\001\n\026EmergencyCallPara" +
      "meter\022\035\n\020emergency_number\030\001 \001(\tB\003\340A\002\022\027\n\n" +
      "abc_number\030\002 \001(\tB\003\340A\002\022\033\n\016sip_trunk_host\030" +
      "\003 \001(\tB\003\340A\002\022\035\n\020destination_name\030\004 \001(\tB\003\340A" +
      "\002\"\207\016\n\031ConfigureDeviceResultTask\022\027\n\nreque" +
      "st_id\030\001 \001(\tB\003\340A\002\022\026\n\tdevice_id\030\002 \001(\005B\003\340A\002" +
      "\0226\n\rconfigured_at\030\003 \001(\0132\032.google.protobu" +
      "f.TimestampB\003\340A\002\022\030\n\020hardware_version\030\004 \001" +
      "(\t\022\030\n\020firmware_version\030\005 \001(\t\022\022\n\005model\030\006 " +
      "\001(\tB\003\340A\002\022G\n\010settings\030\007 \001(\01325.keyapis.dev" +
      "ice.v1.ConfigureDeviceResultTask.Setting" +
      "s\032\357\013\n\010Settings\022P\n\006preset\030\001 \001(\0132;.keyapis" +
      ".device.v1.ConfigureDeviceResultTask.Set" +
      "tings.StateB\003\340A\002\022P\n\013sip_account\030\002 \001(\0132;." +
      "keyapis.device.v1.ConfigureDeviceResultT" +
      "ask.Settings.State\022Q\n\tsip_rooms\030\003 \001(\0132>." +
      "keyapis.device.v1.ConfigureDeviceResultT" +
      "ask.Settings.SipRooms\022I\n\004gate\030\004 \001(\0132;.ke" +
      "yapis.device.v1.ConfigureDeviceResultTas" +
      "k.Settings.State\022J\n\005rfids\030\005 \001(\0132;.keyapi" +
      "s.device.v1.ConfigureDeviceResultTask.Se" +
      "ttings.Rfids\022J\n\005codes\030\006 \001(\0132;.keyapis.de" +
      "vice.v1.ConfigureDeviceResultTask.Settin" +
      "gs.Codes\022H\n\003sl3\030\007 \001(\0132;.keyapis.device.v" +
      "1.ConfigureDeviceResultTask.Settings.Sta" +
      "te\022\\\n\027emergency_call_settings\030\010 \001(\0132;.ke" +
      "yapis.device.v1.ConfigureDeviceResultTas" +
      "k.Settings.State\032z\n\005State\022Z\n\013status_type" +
      "\030\001 \001(\0162@.keyapis.device.v1.ConfigureDevi" +
      "ceResultTask.Settings.StatusTypeB\003\340A\002\022\025\n" +
      "\rerror_message\030\002 \001(\t\032\332\001\n\005Rfids\022U\n\013status" +
      "_type\030\001 \001(\0162@.keyapis.device.v1.Configur" +
      "eDeviceResultTask.Settings.StatusType\022\025\n" +
      "\rerror_message\030\002 \001(\t\022-\n\014loaded_rfids\030\003 \003" +
      "(\0132\027.keyapis.device.v1.Rfid\0224\n\016unloaded_" +
      "rfids\030\004 \003(\0132\034.keyapis.device.v1.RfidErro" +
      "r\032\332\001\n\005Codes\022U\n\013status_type\030\001 \001(\0162@.keyap" +
      "is.device.v1.ConfigureDeviceResultTask.S" +
      "ettings.StatusType\022\025\n\rerror_message\030\002 \001(" +
      "\t\022-\n\014loaded_codes\030\003 \003(\0132\027.keyapis.device" +
      ".v1.Code\0224\n\016unloaded_codes\030\004 \003(\0132\034.keyap" +
      "is.device.v1.CodeError\032\353\001\n\010SipRooms\022U\n\013s" +
      "tatus_type\030\001 \001(\0162@.keyapis.device.v1.Con" +
      "figureDeviceResultTask.Settings.StatusTy" +
      "pe\022\025\n\rerror_message\030\002 \001(\t\0224\n\020loaded_sip_" +
      "rooms\030\003 \003(\0132\032.keyapis.device.v1.SipRoom\022" +
      ";\n\022unloaded_sip_rooms\030\004 \003(\0132\037.keyapis.de" +
      "vice.v1.SipRoomError\"=\n\nStatusType\022\027\n\023ST" +
      "ATUS_TYPE_UNKNOWN\020\000\022\013\n\007SUCCESS\020\001\022\t\n\005ERRO" +
      "R\020\002\"I\n\027CmsServiceAvailableTask\022\027\n\nreques" +
      "t_id\030\001 \001(\tB\003\340A\002\022\025\n\010orpon_id\030\002 \001(\003B\003\340A\002\"\355" +
      "\006\n\021ControlDeviceTask\022\027\n\nrequest_id\030\001 \001(\t" +
      "B\003\340A\002\022\022\n\005model\030\002 \001(\tB\003\340A\002\022\021\n\004host\030\003 \001(\tB" +
      "\003\340A\002\022\025\n\010username\030\004 \001(\tB\003\340A\002\022\025\n\010password\030" +
      "\005 \001(\tB\003\340A\002\022\026\n\tdevice_id\030\006 \001(\005B\003\340A\002\022N\n\020fa" +
      "ce_recognition\030\007 \001(\01324.keyapis.device.v1" +
      ".ControlDeviceTask.FaceRecognition\022)\n\006pr" +
      "eset\030\010 \001(\0132\031.keyapis.device.v1.Preset\0222\n" +
      "\014ntp_timezone\030\t \001(\0132\034.google.protobuf.St" +
      "ringValue\022F\n\013sip_account\030\n \001(\01321.keyapis" +
      ".device.v1.ConfigureDeviceTask.SipAccoun" +
      "t\0229\n\004gate\030\013 \001(\0132+.keyapis.device.v1.Conf" +
      "igureDeviceTask.Gate\022A\n\tconcierge\030\014 \001(\0132" +
      "..keyapis.device.v1.ControlDeviceTask.Co" +
      "ncierge\022E\n\013autocollect\030\r \001(\01320.keyapis.d" +
      "evice.v1.ControlDeviceTask.Autocollect\0227" +
      "\n\003sl3\030\016 \001(\0132*.keyapis.device.v1.Configur" +
      "eDeviceTask.Sl3\022I\n\027emergency_call_settin" +
      "gs\030\017 \001(\0132(.keyapis.device.v1.EmergencyCa" +
      "llSettings\032*\n\017FaceRecognition\022\027\n\nis_enab" +
      "led\030\001 \001(\010B\003\340A\002\032>\n\tConcierge\022\027\n\nsip_numbe" +
      "r\030\001 \001(\tB\003\340A\002\022\030\n\013room_number\030\002 \001(\005B\003\340A\002\032&" +
      "\n\013Autocollect\022\027\n\nis_enabled\030\001 \001(\010B\003\340A\002\"\251" +
      "\007\n\027ControlDeviceResultTask\022\027\n\nrequest_id" +
      "\030\001 \001(\tB\003\340A\002\022\026\n\tdevice_id\030\002 \001(\005B\003\340A\002\0226\n\rc" +
      "onfigured_at\030\003 \001(\0132\032.google.protobuf.Tim" +
      "estampB\003\340A\002\022\030\n\020hardware_version\030\004 \001(\t\022\030\n" +
      "\020firmware_version\030\005 \001(\t\022\022\n\005model\030\006 \001(\tB\003" +
      "\340A\002\022E\n\010settings\030\007 \001(\01323.keyapis.device.v" +
      "1.ControlDeviceResultTask.Settings\032\225\005\n\010S" +
      "ettings\022U\n\020face_recognition\030\001 \001(\0132;.keya" +
      "pis.device.v1.ConfigureDeviceResultTask." +
      "Settings.State\022K\n\006preset\030\002 \001(\0132;.keyapis" +
      ".device.v1.ConfigureDeviceResultTask.Set" +
      "tings.State\022P\n\013sip_account\030\003 \001(\0132;.keyap" +
      "is.device.v1.ConfigureDeviceResultTask.S" +
      "ettings.State\022I\n\004gate\030\004 \001(\0132;.keyapis.de" +
      "vice.v1.ConfigureDeviceResultTask.Settin" +
      "gs.State\022P\n\013autocollect\030\005 \001(\0132;.keyapis." +
      "device.v1.ConfigureDeviceResultTask.Sett" +
      "ings.State\022N\n\tconcierge\030\006 \001(\0132;.keyapis." +
      "device.v1.ConfigureDeviceResultTask.Sett" +
      "ings.State\022H\n\003sl3\030\007 \001(\0132;.keyapis.device" +
      ".v1.ConfigureDeviceResultTask.Settings.S" +
      "tate\022\\\n\027emergency_call_settings\030\010 \001(\0132;." +
      "keyapis.device.v1.ConfigureDeviceResultT" +
      "ask.Settings.State\"\363\001\n\022BlockCmsPhonesTas" +
      "k\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\022\n\005model\030\002 \001(" +
      "\tB\003\340A\002\022\021\n\004host\030\003 \001(\tB\003\340A\002\022\020\n\010username\030\004 " +
      "\001(\t\022\020\n\010password\030\005 \001(\t\022B\n\ncms_phones\030\006 \003(" +
      "\0132..keyapis.device.v1.BlockCmsPhonesTask" +
      ".CmsPhone\0325\n\010CmsPhone\022\017\n\002id\030\001 \001(\005B\003\340A\002\022\030" +
      "\n\013room_number\030\002 \001(\tB\003\340A\002\"\203\001\n\030BlockCmsPho" +
      "neSuccessTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\031" +
      "\n\014cms_phone_id\030\002 \001(\005B\003\340A\002\0223\n\nblocked_at\030" +
      "\003 \001(\0132\032.google.protobuf.TimestampB\003\340A\002\"\234" +
      "\001\n\025BlockCmsPhoneFailTask\022\027\n\nrequest_id\030\001" +
      " \001(\tB\003\340A\002\022\031\n\014cms_phone_id\030\002 \001(\005B\003\340A\002\022\032\n\r" +
      "error_message\030\003 \001(\tB\003\340A\002\0223\n\noccured_at\030\004" +
      " \001(\0132\032.google.protobuf.TimestampB\003\340A\002\"\371\001" +
      "\n\025ActivateCmsPhonesTask\022\027\n\nrequest_id\030\001 " +
      "\001(\tB\003\340A\002\022\022\n\005model\030\002 \001(\tB\003\340A\002\022\021\n\004host\030\003 \001" +
      "(\tB\003\340A\002\022\020\n\010username\030\004 \001(\t\022\020\n\010password\030\005 " +
      "\001(\t\022E\n\ncms_phones\030\006 \003(\01321.keyapis.device" +
      ".v1.ActivateCmsPhonesTask.CmsPhone\0325\n\010Cm" +
      "sPhone\022\017\n\002id\030\001 \001(\005B\003\340A\002\022\030\n\013room_number\030\002" +
      " \001(\tB\003\340A\002\"\210\001\n\033ActivateCmsPhoneSuccessTas" +
      "k\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\031\n\014cms_phone_" +
      "id\030\002 \001(\005B\003\340A\002\0225\n\014activated_at\030\003 \001(\0132\032.go" +
      "ogle.protobuf.TimestampB\003\340A\002\"\237\001\n\030Activat" +
      "eCmsPhoneFailTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340" +
      "A\002\022\031\n\014cms_phone_id\030\002 \001(\005B\003\340A\002\022\032\n\rerror_m" +
      "essage\030\003 \001(\tB\003\340A\002\0223\n\noccured_at\030\004 \001(\0132\032." +
      "google.protobuf.TimestampB\003\340A\002\"C\n\020CmsAva" +
      "ilableTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n\td" +
      "evice_id\030\002 \001(\005B\003\340A\002\"R\n\007SipRoom\022\027\n\nsip_nu" +
      "mber\030\001 \001(\tB\003\340A\002\022\030\n\013room_number\030\002 \001(\tB\003\340A" +
      "\002\022\024\n\007room_id\030\003 \001(\005B\003\340A\002\"m\n\014SipRoomError\022" +
      "\027\n\nsip_number\030\001 \001(\tB\003\340A\002\022\030\n\013room_number\030" +
      "\002 \001(\tB\003\340A\002\022\024\n\007room_id\030\003 \001(\005B\003\340A\002\022\024\n\007mess" +
      "age\030\004 \001(\tB\003\340A\002\"C\n\004Rfid\022\017\n\002id\030\001 \001(\005B\003\340A\002\022" +
      "\020\n\003key\030\002 \001(\tB\003\340A\002\022\030\n\013room_number\030\003 \001(\tB\003" +
      "\340A\002\"D\n\004Code\022\017\n\002id\030\001 \001(\005B\003\340A\002\022\021\n\004code\030\002 \001" +
      "(\tB\003\340A\002\022\030\n\013room_number\030\003 \001(\tB\003\340A\002\"^\n\tRfi" +
      "dError\022\017\n\002id\030\001 \001(\005B\003\340A\002\022\020\n\003key\030\002 \001(\tB\003\340A" +
      "\002\022\030\n\013room_number\030\003 \001(\tB\003\340A\002\022\024\n\007message\030\004" +
      " \001(\tB\003\340A\002\"_\n\tCodeError\022\017\n\002id\030\001 \001(\005B\003\340A\002\022" +
      "\021\n\004code\030\002 \001(\tB\003\340A\002\022\030\n\013room_number\030\003 \001(\tB" +
      "\003\340A\002\022\024\n\007message\030\004 \001(\tB\003\340A\002\"\262\002\n\017AddSl3Rfi" +
      "dsTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\022\n\005model" +
      "\030\002 \001(\tB\003\340A\002\022\021\n\004host\030\003 \001(\tB\003\340A\002\022\020\n\010userna" +
      "me\030\004 \001(\t\022\020\n\010password\030\005 \001(\t\022\026\n\tdevice_id\030" +
      "\006 \001(\005B\003\340A\002\022B\n\tsl3_rfids\030\007 \003(\0132*.keyapis." +
      "device.v1.AddSl3RfidsTask.Sl3RfidB\003\340A\002\032_" +
      "\n\007Sl3Rfid\022\017\n\002id\030\001 \001(\005B\003\340A\002\022\030\n\013room_numbe" +
      "r\030\002 \001(\tB\003\340A\002\022\020\n\003key\030\003 \001(\tB\003\340A\002\022\027\n\nkey_se" +
      "cret\030\004 \001(\tB\003\340A\002\"\267\001\n\014AddRfidsTask\022\027\n\nrequ" +
      "est_id\030\001 \001(\tB\003\340A\002\022\022\n\005model\030\002 \001(\tB\003\340A\002\022\021\n" +
      "\004host\030\003 \001(\tB\003\340A\002\022\020\n\010username\030\004 \001(\t\022\020\n\010pa" +
      "ssword\030\005 \001(\t\022\026\n\tdevice_id\030\006 \001(\005B\003\340A\002\022+\n\005" +
      "rfids\030\007 \003(\0132\027.keyapis.device.v1.RfidB\003\340A" +
      "\002\"\267\001\n\014AddCodesTask\022\027\n\nrequest_id\030\001 \001(\tB\003" +
      "\340A\002\022\022\n\005model\030\002 \001(\tB\003\340A\002\022\021\n\004host\030\003 \001(\tB\003\340" +
      "A\002\022\020\n\010username\030\004 \001(\t\022\020\n\010password\030\005 \001(\t\022\026" +
      "\n\tdevice_id\030\006 \001(\005B\003\340A\002\022+\n\005codes\030\007 \003(\0132\027." +
      "keyapis.device.v1.CodeB\003\340A\002\"s\n\023AddRfidsS" +
      "uccessTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n\td" +
      "evice_id\030\002 \001(\005B\003\340A\002\022+\n\005rfids\030\003 \003(\0132\027.key" +
      "apis.device.v1.RfidB\003\340A\002\"{\n\020AddRfidsFail" +
      "Task\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n\tdevice_" +
      "id\030\002 \001(\005B\003\340A\002\0226\n\013rfid_errors\030\003 \003(\0132\034.key" +
      "apis.device.v1.RfidErrorB\003\340A\002\"s\n\023AddCode" +
      "sSuccessTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n" +
      "\tdevice_id\030\002 \001(\005B\003\340A\002\022+\n\005codes\030\003 \003(\0132\027.k" +
      "eyapis.device.v1.CodeB\003\340A\002\"{\n\020AddCodesFa" +
      "ilTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n\tdevic" +
      "e_id\030\002 \001(\005B\003\340A\002\0226\n\013code_errors\030\003 \003(\0132\034.k" +
      "eyapis.device.v1.CodeErrorB\003\340A\002\"\363\002\n\022Dele" +
      "teSl3RfidsTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022" +
      "\022\n\005model\030\002 \001(\tB\003\340A\002\022\021\n\004host\030\003 \001(\tB\003\340A\002\022\020" +
      "\n\010username\030\004 \001(\t\022\020\n\010password\030\005 \001(\t\022\026\n\tde" +
      "vice_id\030\006 \001(\005B\003\340A\002\022E\n\tsl3_rfids\030\007 \003(\0132-." +
      "keyapis.device.v1.DeleteSl3RfidsTask.Sl3" +
      "RfidB\003\340A\002\0229\n\025is_answer_unnecessary\030\010 \001(\013" +
      "2\032.google.protobuf.BoolValue\032_\n\007Sl3Rfid\022" +
      "\017\n\002id\030\001 \001(\005B\003\340A\002\022\030\n\013room_number\030\002 \001(\tB\003\340" +
      "A\002\022\020\n\003key\030\003 \001(\tB\003\340A\002\022\027\n\nkey_secret\030\004 \001(\t" +
      "B\003\340A\002\"\365\001\n\017DeleteRfidsTask\022\027\n\nrequest_id\030" +
      "\001 \001(\tB\003\340A\002\022\022\n\005model\030\002 \001(\tB\003\340A\002\022\021\n\004host\030\003" +
      " \001(\tB\003\340A\002\022\020\n\010username\030\004 \001(\t\022\020\n\010password\030" +
      "\005 \001(\t\022\026\n\tdevice_id\030\006 \001(\005B\003\340A\002\022+\n\005rfids\030\007" +
      " \003(\0132\027.keyapis.device.v1.RfidB\003\340A\002\0229\n\025is" +
      "_answer_unnecessary\030\010 \001(\0132\032.google.proto" +
      "buf.BoolValue\"\365\001\n\017DeleteCodesTask\022\027\n\nreq" +
      "uest_id\030\001 \001(\tB\003\340A\002\022\022\n\005model\030\002 \001(\tB\003\340A\002\022\021" +
      "\n\004host\030\003 \001(\tB\003\340A\002\022\020\n\010username\030\004 \001(\t\022\020\n\010p" +
      "assword\030\005 \001(\t\022\026\n\tdevice_id\030\006 \001(\005B\003\340A\002\022+\n" +
      "\005codes\030\007 \003(\0132\027.keyapis.device.v1.CodeB\003\340" +
      "A\002\0229\n\025is_answer_unnecessary\030\010 \001(\0132\032.goog" +
      "le.protobuf.BoolValue\"v\n\026DeleteRfidsSucc" +
      "essTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n\tdevi" +
      "ce_id\030\002 \001(\005B\003\340A\002\022+\n\005rfids\030\003 \003(\0132\027.keyapi" +
      "s.device.v1.RfidB\003\340A\002\"~\n\023DeleteRfidsFail" +
      "Task\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n\tdevice_" +
      "id\030\002 \001(\005B\003\340A\002\0226\n\013rfid_errors\030\003 \003(\0132\034.key" +
      "apis.device.v1.RfidErrorB\003\340A\002\"v\n\026DeleteC" +
      "odesSuccessTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002" +
      "\022\026\n\tdevice_id\030\002 \001(\005B\003\340A\002\022+\n\005codes\030\003 \003(\0132" +
      "\027.keyapis.device.v1.CodeB\003\340A\002\"~\n\023DeleteC" +
      "odesFailTask\022\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n" +
      "\tdevice_id\030\002 \001(\005B\003\340A\002\0226\n\013code_errors\030\003 \003" +
      "(\0132\034.keyapis.device.v1.CodeErrorB\003\340A\002\"\247\003" +
      "\n\023OpenAccessPointTask\022\027\n\nrequest_id\030\001 \001(" +
      "\tB\003\340A\002\022\026\n\tdevice_id\030\002 \001(\005B\003\340A\002\0220\n\013relay_" +
      "index\030\003 \001(\0132\033.google.protobuf.Int32Value" +
      "\022*\n\005delay\030\004 \001(\0132\033.google.protobuf.Int32V" +
      "alue\0220\n\ncar_number\030\005 \001(\0132\034.google.protob" +
      "uf.StringValue\022-\n\007vehicle\030\006 \001(\0132\034.google" +
      ".protobuf.StringValue\022:\n\024courier_company" +
      "_name\030\007 \001(\0132\034.google.protobuf.StringValu" +
      "e\0222\n\014order_number\030\010 \001(\0132\034.google.protobu" +
      "f.StringValue\0220\n\ncourier_id\030\t \001(\0132\034.goog" +
      "le.protobuf.StringValue\"\344\001\n\010OpenTask\022\027\n\n" +
      "request_id\030\001 \001(\tB\003\340A\002\022\022\n\005model\030\002 \001(\tB\003\340A" +
      "\002\022\021\n\004host\030\003 \001(\tB\003\340A\002\022\020\n\010username\030\004 \001(\t\022\020" +
      "\n\010password\030\005 \001(\t\022\026\n\tdevice_id\030\006 \001(\005B\003\340A\002" +
      "\0220\n\013relay_index\030\007 \001(\0132\033.google.protobuf." +
      "Int32Value\022*\n\005delay\030\010 \001(\0132\033.google.proto" +
      "buf.Int32Value\"\224\001\n\024DeleteSipAccountTask\022" +
      "\027\n\nrequest_id\030\001 \001(\tB\003\340A\002\022\026\n\tdevice_id\030\002 " +
      "\001(\005B\003\340A\002\0223\n\ndeleted_at\030\003 \001(\0132\032.google.pr" +
      "otobuf.TimestampB\003\340A\002\022\026\n\tsip_login\030\004 \001(\t" +
      "B\003\340A\002\"\274\001\n\026CreateDeviceAccessTask\022\027\n\nrequ" +
      "est_id\030\001 \001(\tB\003\340A\002\022\027\n\ndevice_ids\030\002 \003(\005B\003\340" +
      "A\002\022V\n\033device_access_accessor_type\030\003 \001(\0162" +
      ",.keyapis.device.v1.DeviceAccess.Accesso" +
      "rTypeB\003\340A\002\022\030\n\013accessor_id\030\004 \001(\tB\003\340A\002\"\274\001\n" +
      "\026DeleteDeviceAccessTask\022\027\n\nrequest_id\030\001 " +
      "\001(\tB\003\340A\002\022\027\n\ndevice_ids\030\002 \003(\005B\003\340A\002\022V\n\033dev" +
      "ice_access_accessor_type\030\003 \001(\0162,.keyapis" +
      ".device.v1.DeviceAccess.AccessorTypeB\003\340A" +
      "\002\022\030\n\013accessor_id\030\004 \001(\tB\003\340A\002B\232\001\n\024ru.keyap" +
      "is.device.v1B\024KeyapisDeviceV1ProtoH\003P\000Z\022" +
      "/keyapis_device_v1\330\001\001\370\001\001\242\002\017KEYAPISDEVICE" +
      "V1\252\002\021Keyapis.Device.V1\312\002\021Keyapis\\Device\\" +
      "V1\352\002\023Keyapis::Device::V1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.api.FieldBehaviorProto.getDescriptor(),
          com.google.protobuf.TimestampProto.getDescriptor(),
          com.google.protobuf.WrappersProto.getDescriptor(),
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.getDescriptor(),
          ru.keyapis.device.v1.KeyapisDeviceV1Proto.getDescriptor(),
        });
    internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_keyapis_device_v1_ConfigureDeviceTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "Preset", "SipAccount", "SipRooms", "Gate", "Rfids", "Codes", "NtpTimezone", "Sl3", "EmergencyCallSettings", });
    internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceTask_SipAccount_descriptor,
        new java.lang.String[] { "Name", "Number", "User", "Password", });
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor,
        new java.lang.String[] { "IsActive", "RelaySettings", "RoomRanges", });
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RelaySettings_descriptor,
        new java.lang.String[] { "IsActive", "RelayIndex", });
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceTask_Gate_RoomRange_descriptor,
        new java.lang.String[] { "Address", "Prefix", "FirstRoomNumber", "LastRoomNumber", });
    internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor.getNestedTypes().get(2);
    internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceTask_EncryptionProfile_descriptor,
        new java.lang.String[] { "SectorNumber", "BlockNumber", "AesKey", "StartIndex", "EndIndex", });
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceTask_descriptor.getNestedTypes().get(3);
    internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceTask_Sl3_descriptor,
        new java.lang.String[] { "IsEnabled", "EncryptionProfile", });
    internal_static_keyapis_device_v1_EmergencyCallSettings_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_keyapis_device_v1_EmergencyCallSettings_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_EmergencyCallSettings_descriptor,
        new java.lang.String[] { "IsCallAvailable", "EmergencyCallParameter", });
    internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_descriptor =
      internal_static_keyapis_device_v1_EmergencyCallSettings_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_EmergencyCallSettings_EmergencyCallParameter_descriptor,
        new java.lang.String[] { "EmergencyNumber", "AbcNumber", "SipTrunkHost", "DestinationName", });
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceResultTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "ConfiguredAt", "HardwareVersion", "FirmwareVersion", "Model", "Settings", });
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor,
        new java.lang.String[] { "Preset", "SipAccount", "SipRooms", "Gate", "Rfids", "Codes", "Sl3", "EmergencyCallSettings", });
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_State_descriptor,
        new java.lang.String[] { "StatusType", "ErrorMessage", });
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Rfids_descriptor,
        new java.lang.String[] { "StatusType", "ErrorMessage", "LoadedRfids", "UnloadedRfids", });
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor.getNestedTypes().get(2);
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_Codes_descriptor,
        new java.lang.String[] { "StatusType", "ErrorMessage", "LoadedCodes", "UnloadedCodes", });
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_descriptor =
      internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_descriptor.getNestedTypes().get(3);
    internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ConfigureDeviceResultTask_Settings_SipRooms_descriptor,
        new java.lang.String[] { "StatusType", "ErrorMessage", "LoadedSipRooms", "UnloadedSipRooms", });
    internal_static_keyapis_device_v1_CmsServiceAvailableTask_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_keyapis_device_v1_CmsServiceAvailableTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_CmsServiceAvailableTask_descriptor,
        new java.lang.String[] { "RequestId", "OrponId", });
    internal_static_keyapis_device_v1_ControlDeviceTask_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_keyapis_device_v1_ControlDeviceTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ControlDeviceTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "FaceRecognition", "Preset", "NtpTimezone", "SipAccount", "Gate", "Concierge", "Autocollect", "Sl3", "EmergencyCallSettings", });
    internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_descriptor =
      internal_static_keyapis_device_v1_ControlDeviceTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ControlDeviceTask_FaceRecognition_descriptor,
        new java.lang.String[] { "IsEnabled", });
    internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_descriptor =
      internal_static_keyapis_device_v1_ControlDeviceTask_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ControlDeviceTask_Concierge_descriptor,
        new java.lang.String[] { "SipNumber", "RoomNumber", });
    internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_descriptor =
      internal_static_keyapis_device_v1_ControlDeviceTask_descriptor.getNestedTypes().get(2);
    internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ControlDeviceTask_Autocollect_descriptor,
        new java.lang.String[] { "IsEnabled", });
    internal_static_keyapis_device_v1_ControlDeviceResultTask_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_keyapis_device_v1_ControlDeviceResultTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ControlDeviceResultTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "ConfiguredAt", "HardwareVersion", "FirmwareVersion", "Model", "Settings", });
    internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_descriptor =
      internal_static_keyapis_device_v1_ControlDeviceResultTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ControlDeviceResultTask_Settings_descriptor,
        new java.lang.String[] { "FaceRecognition", "Preset", "SipAccount", "Gate", "Autocollect", "Concierge", "Sl3", "EmergencyCallSettings", });
    internal_static_keyapis_device_v1_BlockCmsPhonesTask_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_keyapis_device_v1_BlockCmsPhonesTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_BlockCmsPhonesTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "CmsPhones", });
    internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_descriptor =
      internal_static_keyapis_device_v1_BlockCmsPhonesTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_BlockCmsPhonesTask_CmsPhone_descriptor,
        new java.lang.String[] { "Id", "RoomNumber", });
    internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_BlockCmsPhoneSuccessTask_descriptor,
        new java.lang.String[] { "RequestId", "CmsPhoneId", "BlockedAt", });
    internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_BlockCmsPhoneFailTask_descriptor,
        new java.lang.String[] { "RequestId", "CmsPhoneId", "ErrorMessage", "OccuredAt", });
    internal_static_keyapis_device_v1_ActivateCmsPhonesTask_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_keyapis_device_v1_ActivateCmsPhonesTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ActivateCmsPhonesTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "CmsPhones", });
    internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_descriptor =
      internal_static_keyapis_device_v1_ActivateCmsPhonesTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ActivateCmsPhonesTask_CmsPhone_descriptor,
        new java.lang.String[] { "Id", "RoomNumber", });
    internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ActivateCmsPhoneSuccessTask_descriptor,
        new java.lang.String[] { "RequestId", "CmsPhoneId", "ActivatedAt", });
    internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_ActivateCmsPhoneFailTask_descriptor,
        new java.lang.String[] { "RequestId", "CmsPhoneId", "ErrorMessage", "OccuredAt", });
    internal_static_keyapis_device_v1_CmsAvailableTask_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_keyapis_device_v1_CmsAvailableTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_CmsAvailableTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", });
    internal_static_keyapis_device_v1_SipRoom_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_keyapis_device_v1_SipRoom_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_SipRoom_descriptor,
        new java.lang.String[] { "SipNumber", "RoomNumber", "RoomId", });
    internal_static_keyapis_device_v1_SipRoomError_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_keyapis_device_v1_SipRoomError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_SipRoomError_descriptor,
        new java.lang.String[] { "SipNumber", "RoomNumber", "RoomId", "Message", });
    internal_static_keyapis_device_v1_Rfid_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_keyapis_device_v1_Rfid_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_Rfid_descriptor,
        new java.lang.String[] { "Id", "Key", "RoomNumber", });
    internal_static_keyapis_device_v1_Code_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_keyapis_device_v1_Code_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_Code_descriptor,
        new java.lang.String[] { "Id", "Code", "RoomNumber", });
    internal_static_keyapis_device_v1_RfidError_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_keyapis_device_v1_RfidError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_RfidError_descriptor,
        new java.lang.String[] { "Id", "Key", "RoomNumber", "Message", });
    internal_static_keyapis_device_v1_CodeError_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_keyapis_device_v1_CodeError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_CodeError_descriptor,
        new java.lang.String[] { "Id", "Code", "RoomNumber", "Message", });
    internal_static_keyapis_device_v1_AddSl3RfidsTask_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_keyapis_device_v1_AddSl3RfidsTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddSl3RfidsTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "Sl3Rfids", });
    internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_descriptor =
      internal_static_keyapis_device_v1_AddSl3RfidsTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddSl3RfidsTask_Sl3Rfid_descriptor,
        new java.lang.String[] { "Id", "RoomNumber", "Key", "KeySecret", });
    internal_static_keyapis_device_v1_AddRfidsTask_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_keyapis_device_v1_AddRfidsTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddRfidsTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "Rfids", });
    internal_static_keyapis_device_v1_AddCodesTask_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_keyapis_device_v1_AddCodesTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddCodesTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "Codes", });
    internal_static_keyapis_device_v1_AddRfidsSuccessTask_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_keyapis_device_v1_AddRfidsSuccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddRfidsSuccessTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "Rfids", });
    internal_static_keyapis_device_v1_AddRfidsFailTask_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_keyapis_device_v1_AddRfidsFailTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddRfidsFailTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "RfidErrors", });
    internal_static_keyapis_device_v1_AddCodesSuccessTask_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_keyapis_device_v1_AddCodesSuccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddCodesSuccessTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "Codes", });
    internal_static_keyapis_device_v1_AddCodesFailTask_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_keyapis_device_v1_AddCodesFailTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_AddCodesFailTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "CodeErrors", });
    internal_static_keyapis_device_v1_DeleteSl3RfidsTask_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_keyapis_device_v1_DeleteSl3RfidsTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteSl3RfidsTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "Sl3Rfids", "IsAnswerUnnecessary", });
    internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_descriptor =
      internal_static_keyapis_device_v1_DeleteSl3RfidsTask_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteSl3RfidsTask_Sl3Rfid_descriptor,
        new java.lang.String[] { "Id", "RoomNumber", "Key", "KeySecret", });
    internal_static_keyapis_device_v1_DeleteRfidsTask_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_keyapis_device_v1_DeleteRfidsTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteRfidsTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "Rfids", "IsAnswerUnnecessary", });
    internal_static_keyapis_device_v1_DeleteCodesTask_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_keyapis_device_v1_DeleteCodesTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteCodesTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "Codes", "IsAnswerUnnecessary", });
    internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteRfidsSuccessTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "Rfids", });
    internal_static_keyapis_device_v1_DeleteRfidsFailTask_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_keyapis_device_v1_DeleteRfidsFailTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteRfidsFailTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "RfidErrors", });
    internal_static_keyapis_device_v1_DeleteCodesSuccessTask_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_keyapis_device_v1_DeleteCodesSuccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteCodesSuccessTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "Codes", });
    internal_static_keyapis_device_v1_DeleteCodesFailTask_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_keyapis_device_v1_DeleteCodesFailTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteCodesFailTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "CodeErrors", });
    internal_static_keyapis_device_v1_OpenAccessPointTask_descriptor =
      getDescriptor().getMessageTypes().get(33);
    internal_static_keyapis_device_v1_OpenAccessPointTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_OpenAccessPointTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "RelayIndex", "Delay", "CarNumber", "Vehicle", "CourierCompanyName", "OrderNumber", "CourierId", });
    internal_static_keyapis_device_v1_OpenTask_descriptor =
      getDescriptor().getMessageTypes().get(34);
    internal_static_keyapis_device_v1_OpenTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_OpenTask_descriptor,
        new java.lang.String[] { "RequestId", "Model", "Host", "Username", "Password", "DeviceId", "RelayIndex", "Delay", });
    internal_static_keyapis_device_v1_DeleteSipAccountTask_descriptor =
      getDescriptor().getMessageTypes().get(35);
    internal_static_keyapis_device_v1_DeleteSipAccountTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteSipAccountTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceId", "DeletedAt", "SipLogin", });
    internal_static_keyapis_device_v1_CreateDeviceAccessTask_descriptor =
      getDescriptor().getMessageTypes().get(36);
    internal_static_keyapis_device_v1_CreateDeviceAccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_CreateDeviceAccessTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceIds", "DeviceAccessAccessorType", "AccessorId", });
    internal_static_keyapis_device_v1_DeleteDeviceAccessTask_descriptor =
      getDescriptor().getMessageTypes().get(37);
    internal_static_keyapis_device_v1_DeleteDeviceAccessTask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_device_v1_DeleteDeviceAccessTask_descriptor,
        new java.lang.String[] { "RequestId", "DeviceIds", "DeviceAccessAccessorType", "AccessorId", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    com.google.api.FieldBehaviorProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
    com.google.protobuf.WrappersProto.getDescriptor();
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.getDescriptor();
    ru.keyapis.device.v1.KeyapisDeviceV1Proto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
