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

package ru.keyapis.iot_connect.v1;

public final class KeyapisIotConnectV1Proto {
  private KeyapisIotConnectV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface GetCallbackUserRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.GetCallbackUserRequest)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Запрос метода получения пользователя для соединения аккаунтов
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.GetCallbackUserRequest}
   */
  public  static final class GetCallbackUserRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetCallbackUserRequest, GetCallbackUserRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.GetCallbackUserRequest)
      GetCallbackUserRequestOrBuilder {
    private GetCallbackUserRequest() {
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetCallbackUserResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.GetCallbackUserResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор пользователя
     * </pre>
     *
     * <code>int32 data = 1 [json_name = "user_id"];</code>
     * @return The data.
     */
    int getData();
  }
  /**
   * <pre>
   * Ответ на запрос метода получения пользователя для соединения аккаунтов
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.GetCallbackUserResponse}
   */
  public  static final class GetCallbackUserResponse extends
      com.google.protobuf.GeneratedMessageLite<
          GetCallbackUserResponse, GetCallbackUserResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.GetCallbackUserResponse)
      GetCallbackUserResponseOrBuilder {
    private GetCallbackUserResponse() {
    }
    public static final int DATA_FIELD_NUMBER = 1;
    private int data_;
    /**
     * <pre>
     * Идентификатор пользователя
     * </pre>
     *
     * <code>int32 data = 1 [json_name = "user_id"];</code>
     * @return The data.
     */
    @java.lang.Override
    public int getData() {
      return data_;
    }
    /**
     * <pre>
     * Идентификатор пользователя
     * </pre>
     *
     * <code>int32 data = 1 [json_name = "user_id"];</code>
     * @param value The data to set.
     */
    private void setData(int value) {
      
      data_ = value;
    }
    /**
     * <pre>
     * Идентификатор пользователя
     * </pre>
     *
     * <code>int32 data = 1 [json_name = "user_id"];</code>
     */
    private void clearData() {

      data_ = 0;
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <pre>
       * Идентификатор пользователя
       * </pre>
       *
       * <code>int32 data = 1 [json_name = "user_id"];</code>
       * @return The data.
       */
      @java.lang.Override
      public int getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Идентификатор пользователя
       * </pre>
       *
       * <code>int32 data = 1 [json_name = "user_id"];</code>
       * @param value The data to set.
       * @return This builder for chaining.
       */
      public Builder setData(int value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор пользователя
       * </pre>
       *
       * <code>int32 data = 1 [json_name = "user_id"];</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackUserResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ModelOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.Model)
      com.google.protobuf.MessageLiteOrBuilder {

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

    /**
     * <pre>
     * Производитель
     * </pre>
     *
     * <code>string manufacturer = 2;</code>
     * @return The manufacturer.
     */
    java.lang.String getManufacturer();
    /**
     * <pre>
     * Производитель
     * </pre>
     *
     * <code>string manufacturer = 2;</code>
     * @return The bytes for manufacturer.
     */
    com.google.protobuf.ByteString
        getManufacturerBytes();

    /**
     * <pre>
     * Название модели
     * </pre>
     *
     * <code>string model = 3;</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <pre>
     * Название модели
     * </pre>
     *
     * <code>string model = 3;</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <pre>
     * Версия оборудования
     * </pre>
     *
     * <code>string hw_version = 4;</code>
     * @return The hwVersion.
     */
    java.lang.String getHwVersion();
    /**
     * <pre>
     * Версия оборудования
     * </pre>
     *
     * <code>string hw_version = 4;</code>
     * @return The bytes for hwVersion.
     */
    com.google.protobuf.ByteString
        getHwVersionBytes();

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

    /**
     * <pre>
     * Описание
     * </pre>
     *
     * <code>string description = 6;</code>
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * <pre>
     * Описание
     * </pre>
     *
     * <code>string description = 6;</code>
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();

    /**
     * <pre>
     * Категория устройства
     * </pre>
     *
     * <code>string category = 7;</code>
     * @return The category.
     */
    java.lang.String getCategory();
    /**
     * <pre>
     * Категория устройства
     * </pre>
     *
     * <code>string category = 7;</code>
     * @return The bytes for category.
     */
    com.google.protobuf.ByteString
        getCategoryBytes();

    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @return A list containing the featureTypes.
     */
    java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType> getFeatureTypesList();
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @return The count of featureTypes.
     */
    int getFeatureTypesCount();
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param index The index of the element to return.
     * @return The featureTypes at the given index.
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType getFeatureTypes(int index);
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @return A list containing the enum numeric values on the wire for featureTypes.
     */
    java.util.List<java.lang.Integer>
    getFeatureTypesValueList();
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of featureTypes at the given index.
     */
    int getFeatureTypesValue(int index);
  }
  /**
   * <pre>
   * Объект Модель устройства
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.Model}
   */
  public  static final class Model extends
      com.google.protobuf.GeneratedMessageLite<
          Model, Model.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.Model)
      ModelOrBuilder {
    private Model() {
      id_ = "";
      manufacturer_ = "";
      model_ = "";
      hwVersion_ = "";
      swVersion_ = "";
      description_ = "";
      category_ = "";
      featureTypes_ = emptyIntList();
    }
    /**
     * <pre>
     * Список функций устройства
     * </pre>
     *
     * Protobuf enum {@code keyapis.iot_connect.v1.Model.FeatureType}
     */
    public enum FeatureType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>FEATURE_TYPE_UNKNOWN = 0;</code>
       */
      FEATURE_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * Сигнализация о поступившем звонке
       * </pre>
       *
       * <code>INCOMING_CALL = 1;</code>
       */
      INCOMING_CALL(1),
      /**
       * <pre>
       * Сигнализация о доступности устройства
       * </pre>
       *
       * <code>ONLINE = 2;</code>
       */
      ONLINE(2),
      /**
       * <pre>
       * Отклонение звонка
       * </pre>
       *
       * <code>REJECT_CALL = 3;</code>
       */
      REJECT_CALL(3),
      /**
       * <pre>
       * Открытие замка
       * </pre>
       *
       * <code>UNLOCK = 4;</code>
       */
      UNLOCK(4),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>FEATURE_TYPE_UNKNOWN = 0;</code>
       */
      public static final int FEATURE_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * Сигнализация о поступившем звонке
       * </pre>
       *
       * <code>INCOMING_CALL = 1;</code>
       */
      public static final int INCOMING_CALL_VALUE = 1;
      /**
       * <pre>
       * Сигнализация о доступности устройства
       * </pre>
       *
       * <code>ONLINE = 2;</code>
       */
      public static final int ONLINE_VALUE = 2;
      /**
       * <pre>
       * Отклонение звонка
       * </pre>
       *
       * <code>REJECT_CALL = 3;</code>
       */
      public static final int REJECT_CALL_VALUE = 3;
      /**
       * <pre>
       * Открытие замка
       * </pre>
       *
       * <code>UNLOCK = 4;</code>
       */
      public static final int UNLOCK_VALUE = 4;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static FeatureType valueOf(int value) {
        return forNumber(value);
      }

      public static FeatureType forNumber(int value) {
        switch (value) {
          case 0: return FEATURE_TYPE_UNKNOWN;
          case 1: return INCOMING_CALL;
          case 2: return ONLINE;
          case 3: return REJECT_CALL;
          case 4: return UNLOCK;
          default: return null;
        }
      }

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:keyapis.iot_connect.v1.Model.FeatureType)
    }

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

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

    }

    public static final int MANUFACTURER_FIELD_NUMBER = 2;
    private java.lang.String manufacturer_;
    /**
     * <pre>
     * Производитель
     * </pre>
     *
     * <code>string manufacturer = 2;</code>
     * @return The manufacturer.
     */
    @java.lang.Override
    public java.lang.String getManufacturer() {
      return manufacturer_;
    }
    /**
     * <pre>
     * Производитель
     * </pre>
     *
     * <code>string manufacturer = 2;</code>
     * @return The bytes for manufacturer.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getManufacturerBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(manufacturer_);
    }
    /**
     * <pre>
     * Производитель
     * </pre>
     *
     * <code>string manufacturer = 2;</code>
     * @param value The manufacturer to set.
     */
    private void setManufacturer(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      manufacturer_ = value;
    }
    /**
     * <pre>
     * Производитель
     * </pre>
     *
     * <code>string manufacturer = 2;</code>
     */
    private void clearManufacturer() {

      manufacturer_ = getDefaultInstance().getManufacturer();
    }
    /**
     * <pre>
     * Производитель
     * </pre>
     *
     * <code>string manufacturer = 2;</code>
     * @param value The bytes for manufacturer to set.
     */
    private void setManufacturerBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      manufacturer_ = value.toStringUtf8();

    }

    public static final int MODEL_FIELD_NUMBER = 3;
    private java.lang.String model_;
    /**
     * <pre>
     * Название модели
     * </pre>
     *
     * <code>string model = 3;</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      return model_;
    }
    /**
     * <pre>
     * Название модели
     * </pre>
     *
     * <code>string model = 3;</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(model_);
    }
    /**
     * <pre>
     * Название модели
     * </pre>
     *
     * <code>string model = 3;</code>
     * @param value The model to set.
     */
    private void setModel(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      model_ = value;
    }
    /**
     * <pre>
     * Название модели
     * </pre>
     *
     * <code>string model = 3;</code>
     */
    private void clearModel() {

      model_ = getDefaultInstance().getModel();
    }
    /**
     * <pre>
     * Название модели
     * </pre>
     *
     * <code>string model = 3;</code>
     * @param value The bytes for model to set.
     */
    private void setModelBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      model_ = value.toStringUtf8();

    }

    public static final int HW_VERSION_FIELD_NUMBER = 4;
    private java.lang.String hwVersion_;
    /**
     * <pre>
     * Версия оборудования
     * </pre>
     *
     * <code>string hw_version = 4;</code>
     * @return The hwVersion.
     */
    @java.lang.Override
    public java.lang.String getHwVersion() {
      return hwVersion_;
    }
    /**
     * <pre>
     * Версия оборудования
     * </pre>
     *
     * <code>string hw_version = 4;</code>
     * @return The bytes for hwVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHwVersionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(hwVersion_);
    }
    /**
     * <pre>
     * Версия оборудования
     * </pre>
     *
     * <code>string hw_version = 4;</code>
     * @param value The hwVersion to set.
     */
    private void setHwVersion(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      hwVersion_ = value;
    }
    /**
     * <pre>
     * Версия оборудования
     * </pre>
     *
     * <code>string hw_version = 4;</code>
     */
    private void clearHwVersion() {

      hwVersion_ = getDefaultInstance().getHwVersion();
    }
    /**
     * <pre>
     * Версия оборудования
     * </pre>
     *
     * <code>string hw_version = 4;</code>
     * @param value The bytes for hwVersion to set.
     */
    private void setHwVersionBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      hwVersion_ = value.toStringUtf8();

    }

    public static final int SW_VERSION_FIELD_NUMBER = 5;
    private java.lang.String swVersion_;
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string sw_version = 5;</code>
     * @return The swVersion.
     */
    @java.lang.Override
    public java.lang.String getSwVersion() {
      return swVersion_;
    }
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string sw_version = 5;</code>
     * @return The bytes for swVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSwVersionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(swVersion_);
    }
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string sw_version = 5;</code>
     * @param value The swVersion to set.
     */
    private void setSwVersion(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      swVersion_ = value;
    }
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string sw_version = 5;</code>
     */
    private void clearSwVersion() {

      swVersion_ = getDefaultInstance().getSwVersion();
    }
    /**
     * <pre>
     * Версия прошивки
     * </pre>
     *
     * <code>string sw_version = 5;</code>
     * @param value The bytes for swVersion to set.
     */
    private void setSwVersionBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      swVersion_ = value.toStringUtf8();

    }

    public static final int DESCRIPTION_FIELD_NUMBER = 6;
    private java.lang.String description_;
    /**
     * <pre>
     * Описание
     * </pre>
     *
     * <code>string description = 6;</code>
     * @return The description.
     */
    @java.lang.Override
    public java.lang.String getDescription() {
      return description_;
    }
    /**
     * <pre>
     * Описание
     * </pre>
     *
     * <code>string description = 6;</code>
     * @return The bytes for description.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(description_);
    }
    /**
     * <pre>
     * Описание
     * </pre>
     *
     * <code>string description = 6;</code>
     * @param value The description to set.
     */
    private void setDescription(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      description_ = value;
    }
    /**
     * <pre>
     * Описание
     * </pre>
     *
     * <code>string description = 6;</code>
     */
    private void clearDescription() {

      description_ = getDefaultInstance().getDescription();
    }
    /**
     * <pre>
     * Описание
     * </pre>
     *
     * <code>string description = 6;</code>
     * @param value The bytes for description to set.
     */
    private void setDescriptionBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      description_ = value.toStringUtf8();

    }

    public static final int CATEGORY_FIELD_NUMBER = 7;
    private java.lang.String category_;
    /**
     * <pre>
     * Категория устройства
     * </pre>
     *
     * <code>string category = 7;</code>
     * @return The category.
     */
    @java.lang.Override
    public java.lang.String getCategory() {
      return category_;
    }
    /**
     * <pre>
     * Категория устройства
     * </pre>
     *
     * <code>string category = 7;</code>
     * @return The bytes for category.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCategoryBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(category_);
    }
    /**
     * <pre>
     * Категория устройства
     * </pre>
     *
     * <code>string category = 7;</code>
     * @param value The category to set.
     */
    private void setCategory(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      category_ = value;
    }
    /**
     * <pre>
     * Категория устройства
     * </pre>
     *
     * <code>string category = 7;</code>
     */
    private void clearCategory() {

      category_ = getDefaultInstance().getCategory();
    }
    /**
     * <pre>
     * Категория устройства
     * </pre>
     *
     * <code>string category = 7;</code>
     * @param value The bytes for category to set.
     */
    private void setCategoryBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      category_ = value.toStringUtf8();

    }

    public static final int FEATURE_TYPES_FIELD_NUMBER = 8;
    private com.google.protobuf.Internal.IntList featureTypes_;
    private static final com.google.protobuf.Internal.ListAdapter.Converter<
        java.lang.Integer, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType> featureTypes_converter_ =
            new com.google.protobuf.Internal.ListAdapter.Converter<
                java.lang.Integer, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType>() {
              @java.lang.Override
              public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType convert(java.lang.Integer from) {
                ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType result = ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType.forNumber(from);
                return result == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType.UNRECOGNIZED : result;
              }
            };
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @return A list containing the featureTypes.
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType> getFeatureTypesList() {
      return new com.google.protobuf.Internal.ListAdapter<
          java.lang.Integer, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType>(featureTypes_, featureTypes_converter_);
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @return The count of featureTypes.
     */
    @java.lang.Override
    public int getFeatureTypesCount() {
      return featureTypes_.size();
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param index The index of the element to return.
     * @return The featureTypes at the given index.
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType getFeatureTypes(int index) {
      ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType result = ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType.forNumber(featureTypes_.getInt(index));
      return result == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @return A list containing the enum numeric values on the wire for featureTypes.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
    getFeatureTypesValueList() {
      return featureTypes_;
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of featureTypes at the given index.
     */
    @java.lang.Override
    public int getFeatureTypesValue(int index) {
      return featureTypes_.getInt(index);
    }
    private int featureTypesMemoizedSerializedSize;
    private void ensureFeatureTypesIsMutable() {
      com.google.protobuf.Internal.IntList tmp = featureTypes_;
      if (!tmp.isModifiable()) {
        featureTypes_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
      }
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param index The index to set the value at.
     * @param value The featureTypes to set.
     */
    private void setFeatureTypes(
        int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType value) {
      value.getClass();
  ensureFeatureTypesIsMutable();
      featureTypes_.setInt(index, value.getNumber());
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param value The featureTypes to add.
     */
    private void addFeatureTypes(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType value) {
      value.getClass();
  ensureFeatureTypesIsMutable();
      featureTypes_.addInt(value.getNumber());
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param values The featureTypes to add.
     */
    private void addAllFeatureTypes(
        java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType> values) {
      ensureFeatureTypesIsMutable();
      for (ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType value : values) {
        featureTypes_.addInt(value.getNumber());
      }
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     */
    private void clearFeatureTypes() {
      featureTypes_ = emptyIntList();
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param value The enum numeric value on the wire for featureTypes to set.
     */
    private void setFeatureTypesValue(
        int index, int value) {
      ensureFeatureTypesIsMutable();
      featureTypes_.setInt(index, value);
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param value The enum numeric value on the wire for featureTypes to add.
     */
    private void addFeatureTypesValue(int value) {
      ensureFeatureTypesIsMutable();
      featureTypes_.addInt(value);
    }
    /**
     * <pre>
     * Список функций
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
     * @param values The enum numeric values on the wire for featureTypes to add.
     */
    private void addAllFeatureTypesValue(
        java.lang.Iterable<java.lang.Integer> values) {
      ensureFeatureTypesIsMutable();
      for (int value : values) {
        featureTypes_.addInt(value);
      }
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Объект Модель устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.Model}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.Model)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.ModelOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


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

      /**
       * <pre>
       * Производитель
       * </pre>
       *
       * <code>string manufacturer = 2;</code>
       * @return The manufacturer.
       */
      @java.lang.Override
      public java.lang.String getManufacturer() {
        return instance.getManufacturer();
      }
      /**
       * <pre>
       * Производитель
       * </pre>
       *
       * <code>string manufacturer = 2;</code>
       * @return The bytes for manufacturer.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getManufacturerBytes() {
        return instance.getManufacturerBytes();
      }
      /**
       * <pre>
       * Производитель
       * </pre>
       *
       * <code>string manufacturer = 2;</code>
       * @param value The manufacturer to set.
       * @return This builder for chaining.
       */
      public Builder setManufacturer(
          java.lang.String value) {
        copyOnWrite();
        instance.setManufacturer(value);
        return this;
      }
      /**
       * <pre>
       * Производитель
       * </pre>
       *
       * <code>string manufacturer = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearManufacturer() {
        copyOnWrite();
        instance.clearManufacturer();
        return this;
      }
      /**
       * <pre>
       * Производитель
       * </pre>
       *
       * <code>string manufacturer = 2;</code>
       * @param value The bytes for manufacturer to set.
       * @return This builder for chaining.
       */
      public Builder setManufacturerBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setManufacturerBytes(value);
        return this;
      }

      /**
       * <pre>
       * Название модели
       * </pre>
       *
       * <code>string model = 3;</code>
       * @return The model.
       */
      @java.lang.Override
      public java.lang.String getModel() {
        return instance.getModel();
      }
      /**
       * <pre>
       * Название модели
       * </pre>
       *
       * <code>string model = 3;</code>
       * @return The bytes for model.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getModelBytes() {
        return instance.getModelBytes();
      }
      /**
       * <pre>
       * Название модели
       * </pre>
       *
       * <code>string model = 3;</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        copyOnWrite();
        instance.setModel(value);
        return this;
      }
      /**
       * <pre>
       * Название модели
       * </pre>
       *
       * <code>string model = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        copyOnWrite();
        instance.clearModel();
        return this;
      }
      /**
       * <pre>
       * Название модели
       * </pre>
       *
       * <code>string model = 3;</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setModelBytes(value);
        return this;
      }

      /**
       * <pre>
       * Версия оборудования
       * </pre>
       *
       * <code>string hw_version = 4;</code>
       * @return The hwVersion.
       */
      @java.lang.Override
      public java.lang.String getHwVersion() {
        return instance.getHwVersion();
      }
      /**
       * <pre>
       * Версия оборудования
       * </pre>
       *
       * <code>string hw_version = 4;</code>
       * @return The bytes for hwVersion.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getHwVersionBytes() {
        return instance.getHwVersionBytes();
      }
      /**
       * <pre>
       * Версия оборудования
       * </pre>
       *
       * <code>string hw_version = 4;</code>
       * @param value The hwVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHwVersion(
          java.lang.String value) {
        copyOnWrite();
        instance.setHwVersion(value);
        return this;
      }
      /**
       * <pre>
       * Версия оборудования
       * </pre>
       *
       * <code>string hw_version = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHwVersion() {
        copyOnWrite();
        instance.clearHwVersion();
        return this;
      }
      /**
       * <pre>
       * Версия оборудования
       * </pre>
       *
       * <code>string hw_version = 4;</code>
       * @param value The bytes for hwVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHwVersionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setHwVersionBytes(value);
        return this;
      }

      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string sw_version = 5;</code>
       * @return The swVersion.
       */
      @java.lang.Override
      public java.lang.String getSwVersion() {
        return instance.getSwVersion();
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string sw_version = 5;</code>
       * @return The bytes for swVersion.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSwVersionBytes() {
        return instance.getSwVersionBytes();
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string sw_version = 5;</code>
       * @param value The swVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSwVersion(
          java.lang.String value) {
        copyOnWrite();
        instance.setSwVersion(value);
        return this;
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string sw_version = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSwVersion() {
        copyOnWrite();
        instance.clearSwVersion();
        return this;
      }
      /**
       * <pre>
       * Версия прошивки
       * </pre>
       *
       * <code>string sw_version = 5;</code>
       * @param value The bytes for swVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSwVersionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSwVersionBytes(value);
        return this;
      }

      /**
       * <pre>
       * Описание
       * </pre>
       *
       * <code>string description = 6;</code>
       * @return The description.
       */
      @java.lang.Override
      public java.lang.String getDescription() {
        return instance.getDescription();
      }
      /**
       * <pre>
       * Описание
       * </pre>
       *
       * <code>string description = 6;</code>
       * @return The bytes for description.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        return instance.getDescriptionBytes();
      }
      /**
       * <pre>
       * Описание
       * </pre>
       *
       * <code>string description = 6;</code>
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        copyOnWrite();
        instance.setDescription(value);
        return this;
      }
      /**
       * <pre>
       * Описание
       * </pre>
       *
       * <code>string description = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        copyOnWrite();
        instance.clearDescription();
        return this;
      }
      /**
       * <pre>
       * Описание
       * </pre>
       *
       * <code>string description = 6;</code>
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDescriptionBytes(value);
        return this;
      }

      /**
       * <pre>
       * Категория устройства
       * </pre>
       *
       * <code>string category = 7;</code>
       * @return The category.
       */
      @java.lang.Override
      public java.lang.String getCategory() {
        return instance.getCategory();
      }
      /**
       * <pre>
       * Категория устройства
       * </pre>
       *
       * <code>string category = 7;</code>
       * @return The bytes for category.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCategoryBytes() {
        return instance.getCategoryBytes();
      }
      /**
       * <pre>
       * Категория устройства
       * </pre>
       *
       * <code>string category = 7;</code>
       * @param value The category to set.
       * @return This builder for chaining.
       */
      public Builder setCategory(
          java.lang.String value) {
        copyOnWrite();
        instance.setCategory(value);
        return this;
      }
      /**
       * <pre>
       * Категория устройства
       * </pre>
       *
       * <code>string category = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategory() {
        copyOnWrite();
        instance.clearCategory();
        return this;
      }
      /**
       * <pre>
       * Категория устройства
       * </pre>
       *
       * <code>string category = 7;</code>
       * @param value The bytes for category to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setCategoryBytes(value);
        return this;
      }

      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @return A list containing the featureTypes.
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType> getFeatureTypesList() {
        return instance.getFeatureTypesList();
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @return The count of featureTypes.
       */
      @java.lang.Override
      public int getFeatureTypesCount() {
        return instance.getFeatureTypesCount();
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param index The index of the element to return.
       * @return The featureTypes at the given index.
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType getFeatureTypes(int index) {
        return instance.getFeatureTypes(index);
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param index The index to set the value at.
       * @param value The featureTypes to set.
       * @return This builder for chaining.
       */
      public Builder setFeatureTypes(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType value) {
        copyOnWrite();
        instance.setFeatureTypes(index, value);
        return this;
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param value The featureTypes to add.
       * @return This builder for chaining.
       */
      public Builder addFeatureTypes(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType value) {
        copyOnWrite();
        instance.addFeatureTypes(value);
        return this;
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param values The featureTypes to add.
       * @return This builder for chaining.
       */
      public Builder addAllFeatureTypes(
          java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.FeatureType> values) {
        copyOnWrite();
        instance.addAllFeatureTypes(values);  return this;
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @return This builder for chaining.
       */
      public Builder clearFeatureTypes() {
        copyOnWrite();
        instance.clearFeatureTypes();
        return this;
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @return A list containing the enum numeric values on the wire for featureTypes.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
      getFeatureTypesValueList() {
        return java.util.Collections.unmodifiableList(
            instance.getFeatureTypesValueList());
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of featureTypes at the given index.
       */
      @java.lang.Override
      public int getFeatureTypesValue(int index) {
        return instance.getFeatureTypesValue(index);
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for featureTypes to set.
       * @return This builder for chaining.
       */
      public Builder setFeatureTypesValue(
          int index, int value) {
        copyOnWrite();
        instance.setFeatureTypesValue(index, value);
        return this;
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param value The enum numeric value on the wire for featureTypes to add.
       * @return This builder for chaining.
       */
      public Builder addFeatureTypesValue(int value) {
        copyOnWrite();
        instance.addFeatureTypesValue(value);
        return this;
      }
      /**
       * <pre>
       * Список функций
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Model.FeatureType feature_types = 8 [json_name = "features"];</code>
       * @param values The enum numeric values on the wire for featureTypes to add.
       * @return This builder for chaining.
       */
      public Builder addAllFeatureTypesValue(
          java.lang.Iterable<java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllFeatureTypesValue(values);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.iot_connect.v1.Model)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "manufacturer_",
              "model_",
              "hwVersion_",
              "swVersion_",
              "description_",
              "category_",
              "featureTypes_",
            };
            java.lang.String info =
                "\u0000\b\u0000\u0000\u0001\b\b\u0000\u0001\u0000\u0001\u0208\u0002\u0208\u0003\u0208" +
                "\u0004\u0208\u0005\u0208\u0006\u0208\u0007\u0208\b,";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface DeviceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.Device)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор устройства на платформе Ключ.
     * Конкатенация user_id и device_id плафтормы Ключ
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <pre>
     * Идентификатор устройства на платформе Ключ.
     * Конкатенация user_id и device_id плафтормы Ключ
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <pre>
     * Название устройства на платформе Ключ
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <pre>
     * Название устройства на платформе Ключ
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * Название устройства от производителя
     * </pre>
     *
     * <code>string default_name = 3;</code>
     * @return The defaultName.
     */
    java.lang.String getDefaultName();
    /**
     * <pre>
     * Название устройства от производителя
     * </pre>
     *
     * <code>string default_name = 3;</code>
     * @return The bytes for defaultName.
     */
    com.google.protobuf.ByteString
        getDefaultNameBytes();

    /**
     * <pre>
     * Адрес дома, где установлено устройство
     * </pre>
     *
     * <code>string home = 4;</code>
     * @return The home.
     */
    java.lang.String getHome();
    /**
     * <pre>
     * Адрес дома, где установлено устройство
     * </pre>
     *
     * <code>string home = 4;</code>
     * @return The bytes for home.
     */
    com.google.protobuf.ByteString
        getHomeBytes();

    /**
     * <pre>
     * Название или номер подъезда
     * </pre>
     *
     * <code>string room = 5;</code>
     * @return The room.
     */
    java.lang.String getRoom();
    /**
     * <pre>
     * Название или номер подъезда
     * </pre>
     *
     * <code>string room = 5;</code>
     * @return The bytes for room.
     */
    com.google.protobuf.ByteString
        getRoomBytes();

    /**
     * <pre>
     * Тип устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
     * @return Whether the model field is set.
     */
    boolean hasModel();
    /**
     * <pre>
     * Тип устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
     * @return The model.
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model getModel();

    /**
     * <pre>
     * HW версия устройства
     * </pre>
     *
     * <code>string hw_version = 7;</code>
     * @return The hwVersion.
     */
    java.lang.String getHwVersion();
    /**
     * <pre>
     * HW версия устройства
     * </pre>
     *
     * <code>string hw_version = 7;</code>
     * @return The bytes for hwVersion.
     */
    com.google.protobuf.ByteString
        getHwVersionBytes();

    /**
     * <pre>
     * SW версия устройства
     * </pre>
     *
     * <code>string sw_version = 8;</code>
     * @return The swVersion.
     */
    java.lang.String getSwVersion();
    /**
     * <pre>
     * SW версия устройства
     * </pre>
     *
     * <code>string sw_version = 8;</code>
     * @return The bytes for swVersion.
     */
    com.google.protobuf.ByteString
        getSwVersionBytes();
  }
  /**
   * <pre>
   * Объект устройства
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.Device}
   */
  public  static final class Device extends
      com.google.protobuf.GeneratedMessageLite<
          Device, Device.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.Device)
      DeviceOrBuilder {
    private Device() {
      id_ = "";
      name_ = "";
      defaultName_ = "";
      home_ = "";
      room_ = "";
      hwVersion_ = "";
      swVersion_ = "";
    }
    public static final int ID_FIELD_NUMBER = 1;
    private java.lang.String id_;
    /**
     * <pre>
     * Идентификатор устройства на платформе Ключ.
     * Конкатенация user_id и device_id плафтормы Ключ
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор устройства на платформе Ключ.
     * Конкатенация user_id и device_id плафтормы Ключ
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(id_);
    }
    /**
     * <pre>
     * Идентификатор устройства на платформе Ключ.
     * Конкатенация user_id и device_id плафтормы Ключ
     * </pre>
     *
     * <code>string id = 1;</code>
     * @param value The id to set.
     */
    private void setId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор устройства на платформе Ключ.
     * Конкатенация user_id и device_id плафтормы Ключ
     * </pre>
     *
     * <code>string id = 1;</code>
     */
    private void clearId() {

      id_ = getDefaultInstance().getId();
    }
    /**
     * <pre>
     * Идентификатор устройства на платформе Ключ.
     * Конкатенация user_id и device_id плафтормы Ключ
     * </pre>
     *
     * <code>string id = 1;</code>
     * @param value The bytes for id to set.
     */
    private void setIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      id_ = value.toStringUtf8();

    }

    public static final int NAME_FIELD_NUMBER = 2;
    private java.lang.String name_;
    /**
     * <pre>
     * Название устройства на платформе Ключ
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      return name_;
    }
    /**
     * <pre>
     * Название устройства на платформе Ключ
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(name_);
    }
    /**
     * <pre>
     * Название устройства на платформе Ключ
     * </pre>
     *
     * <code>string name = 2;</code>
     * @param value The name to set.
     */
    private void setName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      name_ = value;
    }
    /**
     * <pre>
     * Название устройства на платформе Ключ
     * </pre>
     *
     * <code>string name = 2;</code>
     */
    private void clearName() {

      name_ = getDefaultInstance().getName();
    }
    /**
     * <pre>
     * Название устройства на платформе Ключ
     * </pre>
     *
     * <code>string name = 2;</code>
     * @param value The bytes for name to set.
     */
    private void setNameBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      name_ = value.toStringUtf8();

    }

    public static final int DEFAULT_NAME_FIELD_NUMBER = 3;
    private java.lang.String defaultName_;
    /**
     * <pre>
     * Название устройства от производителя
     * </pre>
     *
     * <code>string default_name = 3;</code>
     * @return The defaultName.
     */
    @java.lang.Override
    public java.lang.String getDefaultName() {
      return defaultName_;
    }
    /**
     * <pre>
     * Название устройства от производителя
     * </pre>
     *
     * <code>string default_name = 3;</code>
     * @return The bytes for defaultName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDefaultNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(defaultName_);
    }
    /**
     * <pre>
     * Название устройства от производителя
     * </pre>
     *
     * <code>string default_name = 3;</code>
     * @param value The defaultName to set.
     */
    private void setDefaultName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      defaultName_ = value;
    }
    /**
     * <pre>
     * Название устройства от производителя
     * </pre>
     *
     * <code>string default_name = 3;</code>
     */
    private void clearDefaultName() {

      defaultName_ = getDefaultInstance().getDefaultName();
    }
    /**
     * <pre>
     * Название устройства от производителя
     * </pre>
     *
     * <code>string default_name = 3;</code>
     * @param value The bytes for defaultName to set.
     */
    private void setDefaultNameBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      defaultName_ = value.toStringUtf8();

    }

    public static final int HOME_FIELD_NUMBER = 4;
    private java.lang.String home_;
    /**
     * <pre>
     * Адрес дома, где установлено устройство
     * </pre>
     *
     * <code>string home = 4;</code>
     * @return The home.
     */
    @java.lang.Override
    public java.lang.String getHome() {
      return home_;
    }
    /**
     * <pre>
     * Адрес дома, где установлено устройство
     * </pre>
     *
     * <code>string home = 4;</code>
     * @return The bytes for home.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHomeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(home_);
    }
    /**
     * <pre>
     * Адрес дома, где установлено устройство
     * </pre>
     *
     * <code>string home = 4;</code>
     * @param value The home to set.
     */
    private void setHome(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      home_ = value;
    }
    /**
     * <pre>
     * Адрес дома, где установлено устройство
     * </pre>
     *
     * <code>string home = 4;</code>
     */
    private void clearHome() {

      home_ = getDefaultInstance().getHome();
    }
    /**
     * <pre>
     * Адрес дома, где установлено устройство
     * </pre>
     *
     * <code>string home = 4;</code>
     * @param value The bytes for home to set.
     */
    private void setHomeBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      home_ = value.toStringUtf8();

    }

    public static final int ROOM_FIELD_NUMBER = 5;
    private java.lang.String room_;
    /**
     * <pre>
     * Название или номер подъезда
     * </pre>
     *
     * <code>string room = 5;</code>
     * @return The room.
     */
    @java.lang.Override
    public java.lang.String getRoom() {
      return room_;
    }
    /**
     * <pre>
     * Название или номер подъезда
     * </pre>
     *
     * <code>string room = 5;</code>
     * @return The bytes for room.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(room_);
    }
    /**
     * <pre>
     * Название или номер подъезда
     * </pre>
     *
     * <code>string room = 5;</code>
     * @param value The room to set.
     */
    private void setRoom(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      room_ = value;
    }
    /**
     * <pre>
     * Название или номер подъезда
     * </pre>
     *
     * <code>string room = 5;</code>
     */
    private void clearRoom() {

      room_ = getDefaultInstance().getRoom();
    }
    /**
     * <pre>
     * Название или номер подъезда
     * </pre>
     *
     * <code>string room = 5;</code>
     * @param value The bytes for room to set.
     */
    private void setRoomBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      room_ = value.toStringUtf8();

    }

    public static final int MODEL_FIELD_NUMBER = 6;
    private ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model model_;
    /**
     * <pre>
     * Тип устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
     */
    @java.lang.Override
    public boolean hasModel() {
      return model_ != null;
    }
    /**
     * <pre>
     * Тип устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model getModel() {
      return model_ == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.getDefaultInstance() : model_;
    }
    /**
     * <pre>
     * Тип устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
     */
    private void setModel(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model value) {
      value.getClass();
  model_ = value;

      }
    /**
     * <pre>
     * Тип устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModel(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model value) {
      value.getClass();
  if (model_ != null &&
          model_ != ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.getDefaultInstance()) {
        model_ =
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.newBuilder(model_).mergeFrom(value).buildPartial();
      } else {
        model_ = value;
      }

    }
    /**
     * <pre>
     * Тип устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
     */
    private void clearModel() {  model_ = null;

    }

    public static final int HW_VERSION_FIELD_NUMBER = 7;
    private java.lang.String hwVersion_;
    /**
     * <pre>
     * HW версия устройства
     * </pre>
     *
     * <code>string hw_version = 7;</code>
     * @return The hwVersion.
     */
    @java.lang.Override
    public java.lang.String getHwVersion() {
      return hwVersion_;
    }
    /**
     * <pre>
     * HW версия устройства
     * </pre>
     *
     * <code>string hw_version = 7;</code>
     * @return The bytes for hwVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHwVersionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(hwVersion_);
    }
    /**
     * <pre>
     * HW версия устройства
     * </pre>
     *
     * <code>string hw_version = 7;</code>
     * @param value The hwVersion to set.
     */
    private void setHwVersion(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      hwVersion_ = value;
    }
    /**
     * <pre>
     * HW версия устройства
     * </pre>
     *
     * <code>string hw_version = 7;</code>
     */
    private void clearHwVersion() {

      hwVersion_ = getDefaultInstance().getHwVersion();
    }
    /**
     * <pre>
     * HW версия устройства
     * </pre>
     *
     * <code>string hw_version = 7;</code>
     * @param value The bytes for hwVersion to set.
     */
    private void setHwVersionBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      hwVersion_ = value.toStringUtf8();

    }

    public static final int SW_VERSION_FIELD_NUMBER = 8;
    private java.lang.String swVersion_;
    /**
     * <pre>
     * SW версия устройства
     * </pre>
     *
     * <code>string sw_version = 8;</code>
     * @return The swVersion.
     */
    @java.lang.Override
    public java.lang.String getSwVersion() {
      return swVersion_;
    }
    /**
     * <pre>
     * SW версия устройства
     * </pre>
     *
     * <code>string sw_version = 8;</code>
     * @return The bytes for swVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSwVersionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(swVersion_);
    }
    /**
     * <pre>
     * SW версия устройства
     * </pre>
     *
     * <code>string sw_version = 8;</code>
     * @param value The swVersion to set.
     */
    private void setSwVersion(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      swVersion_ = value;
    }
    /**
     * <pre>
     * SW версия устройства
     * </pre>
     *
     * <code>string sw_version = 8;</code>
     */
    private void clearSwVersion() {

      swVersion_ = getDefaultInstance().getSwVersion();
    }
    /**
     * <pre>
     * SW версия устройства
     * </pre>
     *
     * <code>string sw_version = 8;</code>
     * @param value The bytes for swVersion to set.
     */
    private void setSwVersionBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      swVersion_ = value.toStringUtf8();

    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Объект устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.Device}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.Device)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор устройства на платформе Ключ.
       * Конкатенация user_id и device_id плафтормы Ключ
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * Идентификатор устройства на платформе Ключ.
       * Конкатенация user_id и device_id плафтормы Ключ
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        return instance.getIdBytes();
      }
      /**
       * <pre>
       * Идентификатор устройства на платформе Ключ.
       * Конкатенация user_id и device_id плафтормы Ключ
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства на платформе Ключ.
       * Конкатенация user_id и device_id плафтормы Ключ
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор устройства на платформе Ключ.
       * Конкатенация user_id и device_id плафтормы Ключ
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * Название устройства на платформе Ключ
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return instance.getName();
      }
      /**
       * <pre>
       * Название устройства на платформе Ключ
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return instance.getNameBytes();
      }
      /**
       * <pre>
       * Название устройства на платформе Ключ
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        copyOnWrite();
        instance.setName(value);
        return this;
      }
      /**
       * <pre>
       * Название устройства на платформе Ключ
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        copyOnWrite();
        instance.clearName();
        return this;
      }
      /**
       * <pre>
       * Название устройства на платформе Ключ
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setNameBytes(value);
        return this;
      }

      /**
       * <pre>
       * Название устройства от производителя
       * </pre>
       *
       * <code>string default_name = 3;</code>
       * @return The defaultName.
       */
      @java.lang.Override
      public java.lang.String getDefaultName() {
        return instance.getDefaultName();
      }
      /**
       * <pre>
       * Название устройства от производителя
       * </pre>
       *
       * <code>string default_name = 3;</code>
       * @return The bytes for defaultName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDefaultNameBytes() {
        return instance.getDefaultNameBytes();
      }
      /**
       * <pre>
       * Название устройства от производителя
       * </pre>
       *
       * <code>string default_name = 3;</code>
       * @param value The defaultName to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultName(
          java.lang.String value) {
        copyOnWrite();
        instance.setDefaultName(value);
        return this;
      }
      /**
       * <pre>
       * Название устройства от производителя
       * </pre>
       *
       * <code>string default_name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDefaultName() {
        copyOnWrite();
        instance.clearDefaultName();
        return this;
      }
      /**
       * <pre>
       * Название устройства от производителя
       * </pre>
       *
       * <code>string default_name = 3;</code>
       * @param value The bytes for defaultName to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDefaultNameBytes(value);
        return this;
      }

      /**
       * <pre>
       * Адрес дома, где установлено устройство
       * </pre>
       *
       * <code>string home = 4;</code>
       * @return The home.
       */
      @java.lang.Override
      public java.lang.String getHome() {
        return instance.getHome();
      }
      /**
       * <pre>
       * Адрес дома, где установлено устройство
       * </pre>
       *
       * <code>string home = 4;</code>
       * @return The bytes for home.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getHomeBytes() {
        return instance.getHomeBytes();
      }
      /**
       * <pre>
       * Адрес дома, где установлено устройство
       * </pre>
       *
       * <code>string home = 4;</code>
       * @param value The home to set.
       * @return This builder for chaining.
       */
      public Builder setHome(
          java.lang.String value) {
        copyOnWrite();
        instance.setHome(value);
        return this;
      }
      /**
       * <pre>
       * Адрес дома, где установлено устройство
       * </pre>
       *
       * <code>string home = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHome() {
        copyOnWrite();
        instance.clearHome();
        return this;
      }
      /**
       * <pre>
       * Адрес дома, где установлено устройство
       * </pre>
       *
       * <code>string home = 4;</code>
       * @param value The bytes for home to set.
       * @return This builder for chaining.
       */
      public Builder setHomeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setHomeBytes(value);
        return this;
      }

      /**
       * <pre>
       * Название или номер подъезда
       * </pre>
       *
       * <code>string room = 5;</code>
       * @return The room.
       */
      @java.lang.Override
      public java.lang.String getRoom() {
        return instance.getRoom();
      }
      /**
       * <pre>
       * Название или номер подъезда
       * </pre>
       *
       * <code>string room = 5;</code>
       * @return The bytes for room.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRoomBytes() {
        return instance.getRoomBytes();
      }
      /**
       * <pre>
       * Название или номер подъезда
       * </pre>
       *
       * <code>string room = 5;</code>
       * @param value The room to set.
       * @return This builder for chaining.
       */
      public Builder setRoom(
          java.lang.String value) {
        copyOnWrite();
        instance.setRoom(value);
        return this;
      }
      /**
       * <pre>
       * Название или номер подъезда
       * </pre>
       *
       * <code>string room = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRoom() {
        copyOnWrite();
        instance.clearRoom();
        return this;
      }
      /**
       * <pre>
       * Название или номер подъезда
       * </pre>
       *
       * <code>string room = 5;</code>
       * @param value The bytes for room to set.
       * @return This builder for chaining.
       */
      public Builder setRoomBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setRoomBytes(value);
        return this;
      }

      /**
       * <pre>
       * Тип устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
       */
      @java.lang.Override
      public boolean hasModel() {
        return instance.hasModel();
      }
      /**
       * <pre>
       * Тип устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model getModel() {
        return instance.getModel();
      }
      /**
       * <pre>
       * Тип устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
       */
      public Builder setModel(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model value) {
        copyOnWrite();
        instance.setModel(value);
        return this;
        }
      /**
       * <pre>
       * Тип устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
       */
      public Builder setModel(
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model.Builder builderForValue) {
        copyOnWrite();
        instance.setModel(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Тип устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
       */
      public Builder mergeModel(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Model value) {
        copyOnWrite();
        instance.mergeModel(value);
        return this;
      }
      /**
       * <pre>
       * Тип устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.Model model = 6;</code>
       */
      public Builder clearModel() {  copyOnWrite();
        instance.clearModel();
        return this;
      }

      /**
       * <pre>
       * HW версия устройства
       * </pre>
       *
       * <code>string hw_version = 7;</code>
       * @return The hwVersion.
       */
      @java.lang.Override
      public java.lang.String getHwVersion() {
        return instance.getHwVersion();
      }
      /**
       * <pre>
       * HW версия устройства
       * </pre>
       *
       * <code>string hw_version = 7;</code>
       * @return The bytes for hwVersion.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getHwVersionBytes() {
        return instance.getHwVersionBytes();
      }
      /**
       * <pre>
       * HW версия устройства
       * </pre>
       *
       * <code>string hw_version = 7;</code>
       * @param value The hwVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHwVersion(
          java.lang.String value) {
        copyOnWrite();
        instance.setHwVersion(value);
        return this;
      }
      /**
       * <pre>
       * HW версия устройства
       * </pre>
       *
       * <code>string hw_version = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearHwVersion() {
        copyOnWrite();
        instance.clearHwVersion();
        return this;
      }
      /**
       * <pre>
       * HW версия устройства
       * </pre>
       *
       * <code>string hw_version = 7;</code>
       * @param value The bytes for hwVersion to set.
       * @return This builder for chaining.
       */
      public Builder setHwVersionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setHwVersionBytes(value);
        return this;
      }

      /**
       * <pre>
       * SW версия устройства
       * </pre>
       *
       * <code>string sw_version = 8;</code>
       * @return The swVersion.
       */
      @java.lang.Override
      public java.lang.String getSwVersion() {
        return instance.getSwVersion();
      }
      /**
       * <pre>
       * SW версия устройства
       * </pre>
       *
       * <code>string sw_version = 8;</code>
       * @return The bytes for swVersion.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSwVersionBytes() {
        return instance.getSwVersionBytes();
      }
      /**
       * <pre>
       * SW версия устройства
       * </pre>
       *
       * <code>string sw_version = 8;</code>
       * @param value The swVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSwVersion(
          java.lang.String value) {
        copyOnWrite();
        instance.setSwVersion(value);
        return this;
      }
      /**
       * <pre>
       * SW версия устройства
       * </pre>
       *
       * <code>string sw_version = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearSwVersion() {
        copyOnWrite();
        instance.clearSwVersion();
        return this;
      }
      /**
       * <pre>
       * SW версия устройства
       * </pre>
       *
       * <code>string sw_version = 8;</code>
       * @param value The bytes for swVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSwVersionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSwVersionBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.iot_connect.v1.Device)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "name_",
              "defaultName_",
              "home_",
              "room_",
              "model_",
              "hwVersion_",
              "swVersion_",
            };
            java.lang.String info =
                "\u0000\b\u0000\u0000\u0001\b\b\u0000\u0000\u0000\u0001\u0208\u0002\u0208\u0003\u0208" +
                "\u0004\u0208\u0005\u0208\u0006\t\u0007\u0208\b\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface DeviceStateArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.DeviceStateArray)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState> 
        getStatesList();
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState getStates(int index);
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    int getStatesCount();
  }
  /**
   * <pre>
   * Массив статусов устройства
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.DeviceStateArray}
   */
  public  static final class DeviceStateArray extends
      com.google.protobuf.GeneratedMessageLite<
          DeviceStateArray, DeviceStateArray.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.DeviceStateArray)
      DeviceStateArrayOrBuilder {
    private DeviceStateArray() {
      states_ = emptyProtobufList();
    }
    public static final int STATES_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState> states_;
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState> getStatesList() {
      return states_;
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    public java.util.List<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateOrBuilder> 
        getStatesOrBuilderList() {
      return states_;
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    @java.lang.Override
    public int getStatesCount() {
      return states_.size();
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState getStates(int index) {
      return states_.get(index);
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateOrBuilder getStatesOrBuilder(
        int index) {
      return states_.get(index);
    }
    private void ensureStatesIsMutable() {
      com.google.protobuf.Internal.ProtobufList<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState> tmp = states_;
      if (!tmp.isModifiable()) {
        states_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    private void setStates(
        int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState value) {
      value.getClass();
  ensureStatesIsMutable();
      states_.set(index, value);
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    private void addStates(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState value) {
      value.getClass();
  ensureStatesIsMutable();
      states_.add(value);
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    private void addStates(
        int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState value) {
      value.getClass();
  ensureStatesIsMutable();
      states_.add(index, value);
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    private void addAllStates(
        java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState> values) {
      ensureStatesIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, states_);
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    private void clearStates() {
      states_ = emptyProtobufList();
    }
    /**
     * <pre>
     * Статусы устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
     */
    private void removeStates(int index) {
      ensureStatesIsMutable();
      states_.remove(index);
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Массив статусов устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.DeviceStateArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.DeviceStateArray)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArrayOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState> getStatesList() {
        return java.util.Collections.unmodifiableList(
            instance.getStatesList());
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      @java.lang.Override
      public int getStatesCount() {
        return instance.getStatesCount();
      }/**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState getStates(int index) {
        return instance.getStates(index);
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder setStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState value) {
        copyOnWrite();
        instance.setStates(index, value);
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder setStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Builder builderForValue) {
        copyOnWrite();
        instance.setStates(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder addStates(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState value) {
        copyOnWrite();
        instance.addStates(value);
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder addStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState value) {
        copyOnWrite();
        instance.addStates(index, value);
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder addStates(
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Builder builderForValue) {
        copyOnWrite();
        instance.addStates(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder addStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Builder builderForValue) {
        copyOnWrite();
        instance.addStates(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder addAllStates(
          java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState> values) {
        copyOnWrite();
        instance.addAllStates(values);
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder clearStates() {
        copyOnWrite();
        instance.clearStates();
        return this;
      }
      /**
       * <pre>
       * Статусы устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceState states = 1;</code>
       */
      public Builder removeStates(int index) {
        copyOnWrite();
        instance.removeStates(index);
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface DeviceCommandArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.DeviceCommandArray)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand> 
        getStatesList();
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand getStates(int index);
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    int getStatesCount();
  }
  /**
   * <pre>
   * Массив команд на изменение статуса устройства
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.DeviceCommandArray}
   */
  public  static final class DeviceCommandArray extends
      com.google.protobuf.GeneratedMessageLite<
          DeviceCommandArray, DeviceCommandArray.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.DeviceCommandArray)
      DeviceCommandArrayOrBuilder {
    private DeviceCommandArray() {
      states_ = emptyProtobufList();
    }
    public static final int STATES_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand> states_;
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand> getStatesList() {
      return states_;
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    public java.util.List<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandOrBuilder> 
        getStatesOrBuilderList() {
      return states_;
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    @java.lang.Override
    public int getStatesCount() {
      return states_.size();
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand getStates(int index) {
      return states_.get(index);
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandOrBuilder getStatesOrBuilder(
        int index) {
      return states_.get(index);
    }
    private void ensureStatesIsMutable() {
      com.google.protobuf.Internal.ProtobufList<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand> tmp = states_;
      if (!tmp.isModifiable()) {
        states_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    private void setStates(
        int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand value) {
      value.getClass();
  ensureStatesIsMutable();
      states_.set(index, value);
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    private void addStates(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand value) {
      value.getClass();
  ensureStatesIsMutable();
      states_.add(value);
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    private void addStates(
        int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand value) {
      value.getClass();
  ensureStatesIsMutable();
      states_.add(index, value);
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    private void addAllStates(
        java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand> values) {
      ensureStatesIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, states_);
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    private void clearStates() {
      states_ = emptyProtobufList();
    }
    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
     */
    private void removeStates(int index) {
      ensureStatesIsMutable();
      states_.remove(index);
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Массив команд на изменение статуса устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.DeviceCommandArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.DeviceCommandArray)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArrayOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand> getStatesList() {
        return java.util.Collections.unmodifiableList(
            instance.getStatesList());
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      @java.lang.Override
      public int getStatesCount() {
        return instance.getStatesCount();
      }/**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand getStates(int index) {
        return instance.getStates(index);
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder setStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand value) {
        copyOnWrite();
        instance.setStates(index, value);
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder setStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Builder builderForValue) {
        copyOnWrite();
        instance.setStates(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder addStates(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand value) {
        copyOnWrite();
        instance.addStates(value);
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder addStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand value) {
        copyOnWrite();
        instance.addStates(index, value);
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder addStates(
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Builder builderForValue) {
        copyOnWrite();
        instance.addStates(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder addStates(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Builder builderForValue) {
        copyOnWrite();
        instance.addStates(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder addAllStates(
          java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand> values) {
        copyOnWrite();
        instance.addAllStates(values);
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder clearStates() {
        copyOnWrite();
        instance.clearStates();
        return this;
      }
      /**
       * <pre>
       * Команды на изменение статуса устройства
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.DeviceCommand states = 1;</code>
       */
      public Builder removeStates(int index) {
        copyOnWrite();
        instance.removeStates(index);
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface DeviceCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.DeviceCommand)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Тип команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
     * @return The enum numeric value on the wire for commandKeyType.
     */
    int getCommandKeyTypeValue();
    /**
     * <pre>
     * Тип команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
     * @return The commandKeyType.
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType getCommandKeyType();

    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
     * @return The value.
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value getValue();
  }
  /**
   * <pre>
   * Команды на изменение статуса устройства
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.DeviceCommand}
   */
  public  static final class DeviceCommand extends
      com.google.protobuf.GeneratedMessageLite<
          DeviceCommand, DeviceCommand.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.DeviceCommand)
      DeviceCommandOrBuilder {
    private DeviceCommand() {
    }
    /**
     * <pre>
     * Список ключей команд на изменение статуса устройства
     * </pre>
     *
     * Protobuf enum {@code keyapis.iot_connect.v1.DeviceCommand.KeyType}
     */
    public enum KeyType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>KEY_TYPE_UNKNOWN = 0;</code>
       */
      KEY_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * Отклонение звонка
       * </pre>
       *
       * <code>REJECT_CALL = 1;</code>
       */
      REJECT_CALL(1),
      /**
       * <pre>
       * Открытие замка
       * </pre>
       *
       * <code>UNLOCK = 2;</code>
       */
      UNLOCK(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>KEY_TYPE_UNKNOWN = 0;</code>
       */
      public static final int KEY_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * Отклонение звонка
       * </pre>
       *
       * <code>REJECT_CALL = 1;</code>
       */
      public static final int REJECT_CALL_VALUE = 1;
      /**
       * <pre>
       * Открытие замка
       * </pre>
       *
       * <code>UNLOCK = 2;</code>
       */
      public static final int UNLOCK_VALUE = 2;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static KeyType valueOf(int value) {
        return forNumber(value);
      }

      public static KeyType forNumber(int value) {
        switch (value) {
          case 0: return KEY_TYPE_UNKNOWN;
          case 1: return REJECT_CALL;
          case 2: return UNLOCK;
          default: return null;
        }
      }

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:keyapis.iot_connect.v1.DeviceCommand.KeyType)
    }

    public interface ValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.DeviceCommand.Value)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Тип значения команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
       * @return The enum numeric value on the wire for type.
       */
      int getTypeValue();
      /**
       * <pre>
       * Тип значения команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
       * @return The type.
       */
      ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type getType();

      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @return Whether the valueEnumType field is set.
       */
      boolean hasValueEnumType();
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @return The enum numeric value on the wire for valueEnumType.
       */
      int getValueEnumTypeValue();
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @return The valueEnumType.
       */
      ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType getValueEnumType();

      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueCase getValueCase();
    }
    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.DeviceCommand.Value}
     */
    public  static final class Value extends
        com.google.protobuf.GeneratedMessageLite<
            Value, Value.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.DeviceCommand.Value)
        ValueOrBuilder {
      private Value() {
      }
      /**
       * <pre>
       * Тип значения команд на изменение статуса устройства
       * </pre>
       *
       * Protobuf enum {@code keyapis.iot_connect.v1.DeviceCommand.Value.Type}
       */
      public enum Type
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>TYPE_UNKNOWN = 0;</code>
         */
        TYPE_UNKNOWN(0),
        /**
         * <pre>
         * Перечисление
         * </pre>
         *
         * <code>ENUM = 1;</code>
         */
        ENUM(1),
        UNRECOGNIZED(-1),
        ;

        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>TYPE_UNKNOWN = 0;</code>
         */
        public static final int TYPE_UNKNOWN_VALUE = 0;
        /**
         * <pre>
         * Перечисление
         * </pre>
         *
         * <code>ENUM = 1;</code>
         */
        public static final int ENUM_VALUE = 1;


        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }

        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Type valueOf(int value) {
          return forNumber(value);
        }

        public static Type forNumber(int value) {
          switch (value) {
            case 0: return TYPE_UNKNOWN;
            case 1: return ENUM;
            default: return null;
          }
        }

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

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

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

        private final int value;

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

        // @@protoc_insertion_point(enum_scope:keyapis.iot_connect.v1.DeviceCommand.Value.Type)
      }

      /**
       * <pre>
       * Значения команд на изменение статуса устройства типа перечисление
       * </pre>
       *
       * Protobuf enum {@code keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType}
       */
      public enum ValueEnumType
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>VALUE_ENUM_TYPE_UNKNOWN = 0;</code>
         */
        VALUE_ENUM_TYPE_UNKNOWN(0),
        /**
         * <pre>
         * Отклонение звонка
         * </pre>
         *
         * <code>REJECT = 1;</code>
         */
        REJECT(1),
        /**
         * <pre>
         * Открытие замка
         * </pre>
         *
         * <code>UNLOCK = 2;</code>
         */
        UNLOCK(2),
        UNRECOGNIZED(-1),
        ;

        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>VALUE_ENUM_TYPE_UNKNOWN = 0;</code>
         */
        public static final int VALUE_ENUM_TYPE_UNKNOWN_VALUE = 0;
        /**
         * <pre>
         * Отклонение звонка
         * </pre>
         *
         * <code>REJECT = 1;</code>
         */
        public static final int REJECT_VALUE = 1;
        /**
         * <pre>
         * Открытие замка
         * </pre>
         *
         * <code>UNLOCK = 2;</code>
         */
        public static final int UNLOCK_VALUE = 2;


        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }

        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueEnumType valueOf(int value) {
          return forNumber(value);
        }

        public static ValueEnumType forNumber(int value) {
          switch (value) {
            case 0: return VALUE_ENUM_TYPE_UNKNOWN;
            case 1: return REJECT;
            case 2: return UNLOCK;
            default: return null;
          }
        }

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

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

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

        private final int value;

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

        // @@protoc_insertion_point(enum_scope:keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType)
      }

      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase {
        VALUE_ENUM_TYPE(2),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueCase valueOf(int value) {
          return forNumber(value);
        }

        public static ValueCase forNumber(int value) {
          switch (value) {
            case 2: return VALUE_ENUM_TYPE;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      private void clearValue() {
        valueCase_ = 0;
        value_ = null;
      }

      public static final int TYPE_FIELD_NUMBER = 1;
      private int type_;
      /**
       * <pre>
       * Тип значения команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override
      public int getTypeValue() {
        return type_;
      }
      /**
       * <pre>
       * Тип значения команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
       * @return The type.
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type getType() {
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type result = ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type.forNumber(type_);
        return result == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Тип значения команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
       * @param value The enum numeric value on the wire for type to set.
       */
      private void setTypeValue(int value) {
          type_ = value;
      }
      /**
       * <pre>
       * Тип значения команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
       * @param value The type to set.
       */
      private void setType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type value) {
        type_ = value.getNumber();

      }
      /**
       * <pre>
       * Тип значения команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
       */
      private void clearType() {

        type_ = 0;
      }

      public static final int VALUE_ENUM_TYPE_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @return Whether the valueEnumType field is set.
       */
      @java.lang.Override
      public boolean hasValueEnumType() {
        return valueCase_ == 2;
      }
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @return The enum numeric value on the wire for valueEnumType.
       */
      @java.lang.Override
      public int getValueEnumTypeValue() {
        if (valueCase_ == 2) {
          return (java.lang.Integer) value_;
        }
        return 0;
      }
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @return The valueEnumType.
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType getValueEnumType() {
        if (valueCase_ == 2) {
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType result = ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType.forNumber((java.lang.Integer) value_);
          return result == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType.UNRECOGNIZED : result;
        }
        return ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType.VALUE_ENUM_TYPE_UNKNOWN;
      }
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @param value The enum numeric value on the wire for valueEnumType to set.
       */
      private void setValueEnumTypeValue(int value) {
        valueCase_ = 2;
        value_ = value;
      }
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       * @param value The valueEnumType to set.
       */
      private void setValueEnumType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType value) {
        value_ = value.getNumber();
        valueCase_ = 2;
      }
      /**
       * <pre>
       * Значения команды на изменение статуса устройства типа перечисление
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
       */
      private void clearValueEnumType() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
        }
      }

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

      public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Значение команды на изменение статуса устройства
       * </pre>
       *
       * Protobuf type {@code keyapis.iot_connect.v1.DeviceCommand.Value}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.DeviceCommand.Value)
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.ValueOrBuilder {
        // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ValueCase
            getValueCase() {
          return instance.getValueCase();
        }

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


        /**
         * <pre>
         * Тип значения команды на изменение статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
         * @return The enum numeric value on the wire for type.
         */
        @java.lang.Override
        public int getTypeValue() {
          return instance.getTypeValue();
        }
        /**
         * <pre>
         * Тип значения команды на изменение статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
         * @param value The type to set.
         * @return This builder for chaining.
         */
        public Builder setTypeValue(int value) {
          copyOnWrite();
          instance.setTypeValue(value);
          return this;
        }
        /**
         * <pre>
         * Тип значения команды на изменение статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
         * @return The type.
         */
        @java.lang.Override
        public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type getType() {
          return instance.getType();
        }
        /**
         * <pre>
         * Тип значения команды на изменение статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
         * @param value The enum numeric value on the wire for type to set.
         * @return This builder for chaining.
         */
        public Builder setType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Type value) {
          copyOnWrite();
          instance.setType(value);
          return this;
        }
        /**
         * <pre>
         * Тип значения команды на изменение статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.Type type = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }

        /**
         * <pre>
         * Значения команды на изменение статуса устройства типа перечисление
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
         * @return Whether the valueEnumType field is set.
         */
        @java.lang.Override
        public boolean hasValueEnumType() {
          return instance.hasValueEnumType();
        }
        /**
         * <pre>
         * Значения команды на изменение статуса устройства типа перечисление
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
         * @return The enum numeric value on the wire for valueEnumType.
         */
        @java.lang.Override
        public int getValueEnumTypeValue() {
          return instance.getValueEnumTypeValue();
        }
        /**
         * <pre>
         * Значения команды на изменение статуса устройства типа перечисление
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
         * @param value The enum numeric value on the wire for valueEnumType to set.
         * @return This builder for chaining.
         */
        public Builder setValueEnumTypeValue(int value) {
          copyOnWrite();
          instance.setValueEnumTypeValue(value);
          return this;
        }
        /**
         * <pre>
         * Значения команды на изменение статуса устройства типа перечисление
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
         * @return The valueEnumType.
         */
        @java.lang.Override
        public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType getValueEnumType() {
          return instance.getValueEnumType();
        }
        /**
         * <pre>
         * Значения команды на изменение статуса устройства типа перечисление
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
         * @param value The valueEnumType to set.
         * @return This builder for chaining.
         */
        public Builder setValueEnumType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.ValueEnumType value) {
          copyOnWrite();
          instance.setValueEnumType(value);
          return this;
        }
        /**
         * <pre>
         * Значения команды на изменение статуса устройства типа перечисление
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceCommand.Value.ValueEnumType value_enum_type = 2 [json_name = "enum_value"];</code>
         * @return This builder for chaining.
         */
        public Builder clearValueEnumType() {
          copyOnWrite();
          instance.clearValueEnumType();
          return this;
        }

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


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

      public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    public static final int COMMAND_KEY_TYPE_FIELD_NUMBER = 1;
    private int commandKeyType_;
    /**
     * <pre>
     * Тип команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
     * @return The enum numeric value on the wire for commandKeyType.
     */
    @java.lang.Override
    public int getCommandKeyTypeValue() {
      return commandKeyType_;
    }
    /**
     * <pre>
     * Тип команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
     * @return The commandKeyType.
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType getCommandKeyType() {
      ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType result = ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType.forNumber(commandKeyType_);
      return result == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Тип команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
     * @param value The enum numeric value on the wire for commandKeyType to set.
     */
    private void setCommandKeyTypeValue(int value) {
        commandKeyType_ = value;
    }
    /**
     * <pre>
     * Тип команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
     * @param value The commandKeyType to set.
     */
    private void setCommandKeyType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType value) {
      commandKeyType_ = value.getNumber();

    }
    /**
     * <pre>
     * Тип команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
     */
    private void clearCommandKeyType() {

      commandKeyType_ = 0;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value value_;
    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
     */
    @java.lang.Override
    public boolean hasValue() {
      return value_ != null;
    }
    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value getValue() {
      return value_ == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.getDefaultInstance() : value_;
    }
    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
     */
    private void setValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value value) {
      value.getClass();
  value_ = value;

      }
    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value value) {
      value.getClass();
  if (value_ != null &&
          value_ != ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.getDefaultInstance()) {
        value_ =
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.newBuilder(value_).mergeFrom(value).buildPartial();
      } else {
        value_ = value;
      }

    }
    /**
     * <pre>
     * Значение команды на изменение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
     */
    private void clearValue() {  value_ = null;

    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Команды на изменение статуса устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.DeviceCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.DeviceCommand)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Тип команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
       * @return The enum numeric value on the wire for commandKeyType.
       */
      @java.lang.Override
      public int getCommandKeyTypeValue() {
        return instance.getCommandKeyTypeValue();
      }
      /**
       * <pre>
       * Тип команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
       * @param value The commandKeyType to set.
       * @return This builder for chaining.
       */
      public Builder setCommandKeyTypeValue(int value) {
        copyOnWrite();
        instance.setCommandKeyTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * Тип команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
       * @return The commandKeyType.
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType getCommandKeyType() {
        return instance.getCommandKeyType();
      }
      /**
       * <pre>
       * Тип команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
       * @param value The enum numeric value on the wire for commandKeyType to set.
       * @return This builder for chaining.
       */
      public Builder setCommandKeyType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.KeyType value) {
        copyOnWrite();
        instance.setCommandKeyType(value);
        return this;
      }
      /**
       * <pre>
       * Тип команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.KeyType command_key_type = 1 [json_name = "key"];</code>
       * @return This builder for chaining.
       */
      public Builder clearCommandKeyType() {
        copyOnWrite();
        instance.clearCommandKeyType();
        return this;
      }

      /**
       * <pre>
       * Значение команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * Значение команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * Значение команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
       */
      public Builder setValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
        }
      /**
       * <pre>
       * Значение команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
       */
      public Builder setValue(
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value.Builder builderForValue) {
        copyOnWrite();
        instance.setValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Значение команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
       */
      public Builder mergeValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand.Value value) {
        copyOnWrite();
        instance.mergeValue(value);
        return this;
      }
      /**
       * <pre>
       * Значение команды на изменение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceCommand.Value value = 2;</code>
       */
      public Builder clearValue() {  copyOnWrite();
        instance.clearValue();
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface DeviceStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.DeviceState)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Тип статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
     * @return The enum numeric value on the wire for stateKeyType.
     */
    int getStateKeyTypeValue();
    /**
     * <pre>
     * Тип статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
     * @return The stateKeyType.
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType getStateKeyType();

    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
     * @return The value.
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value getValue();
  }
  /**
   * <pre>
   * Статус устройства
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.DeviceState}
   */
  public  static final class DeviceState extends
      com.google.protobuf.GeneratedMessageLite<
          DeviceState, DeviceState.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.DeviceState)
      DeviceStateOrBuilder {
    private DeviceState() {
    }
    /**
     * <pre>
     * Список ключей статусов устройства
     * </pre>
     *
     * Protobuf enum {@code keyapis.iot_connect.v1.DeviceState.KeyType}
     */
    public enum KeyType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>KEY_TYPE_UNKNOWN = 0;</code>
       */
      KEY_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * Статус доступности устройства
       * </pre>
       *
       * <code>ONLINE = 1;</code>
       */
      ONLINE(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>KEY_TYPE_UNKNOWN = 0;</code>
       */
      public static final int KEY_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * Статус доступности устройства
       * </pre>
       *
       * <code>ONLINE = 1;</code>
       */
      public static final int ONLINE_VALUE = 1;


      @java.lang.Override
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static KeyType valueOf(int value) {
        return forNumber(value);
      }

      public static KeyType forNumber(int value) {
        switch (value) {
          case 0: return KEY_TYPE_UNKNOWN;
          case 1: return ONLINE;
          default: return null;
        }
      }

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:keyapis.iot_connect.v1.DeviceState.KeyType)
    }

    public interface ValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.DeviceState.Value)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
       * @return The enum numeric value on the wire for type.
       */
      int getTypeValue();
      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
       * @return The type.
       */
      ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type getType();

      /**
       * <pre>
       * Значение логического типа
       * </pre>
       *
       * <code>bool is_value = 2 [json_name = "bool_value"];</code>
       * @return Whether the isValue field is set.
       */
      boolean hasIsValue();
      /**
       * <pre>
       * Значение логического типа
       * </pre>
       *
       * <code>bool is_value = 2 [json_name = "bool_value"];</code>
       * @return The isValue.
       */
      boolean getIsValue();

      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.ValueCase getValueCase();
    }
    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.DeviceState.Value}
     */
    public  static final class Value extends
        com.google.protobuf.GeneratedMessageLite<
            Value, Value.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.DeviceState.Value)
        ValueOrBuilder {
      private Value() {
      }
      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * Protobuf enum {@code keyapis.iot_connect.v1.DeviceState.Value.Type}
       */
      public enum Type
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>TYPE_UNKNOWN = 0;</code>
         */
        TYPE_UNKNOWN(0),
        /**
         * <pre>
         * Логический тип
         * </pre>
         *
         * <code>BOOL = 1;</code>
         */
        BOOL(1),
        UNRECOGNIZED(-1),
        ;

        /**
         * <pre>
         * Значение не указано
         * </pre>
         *
         * <code>TYPE_UNKNOWN = 0;</code>
         */
        public static final int TYPE_UNKNOWN_VALUE = 0;
        /**
         * <pre>
         * Логический тип
         * </pre>
         *
         * <code>BOOL = 1;</code>
         */
        public static final int BOOL_VALUE = 1;


        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }

        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Type valueOf(int value) {
          return forNumber(value);
        }

        public static Type forNumber(int value) {
          switch (value) {
            case 0: return TYPE_UNKNOWN;
            case 1: return BOOL;
            default: return null;
          }
        }

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

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

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

        private final int value;

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

        // @@protoc_insertion_point(enum_scope:keyapis.iot_connect.v1.DeviceState.Value.Type)
      }

      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase {
        IS_VALUE(2),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueCase valueOf(int value) {
          return forNumber(value);
        }

        public static ValueCase forNumber(int value) {
          switch (value) {
            case 2: return IS_VALUE;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      private void clearValue() {
        valueCase_ = 0;
        value_ = null;
      }

      public static final int TYPE_FIELD_NUMBER = 1;
      private int type_;
      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override
      public int getTypeValue() {
        return type_;
      }
      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
       * @return The type.
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type getType() {
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type result = ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type.forNumber(type_);
        return result == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
       * @param value The enum numeric value on the wire for type to set.
       */
      private void setTypeValue(int value) {
          type_ = value;
      }
      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
       * @param value The type to set.
       */
      private void setType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type value) {
        type_ = value.getNumber();

      }
      /**
       * <pre>
       * Тип значения статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
       */
      private void clearType() {

        type_ = 0;
      }

      public static final int IS_VALUE_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Значение логического типа
       * </pre>
       *
       * <code>bool is_value = 2 [json_name = "bool_value"];</code>
       * @return Whether the isValue field is set.
       */
      @java.lang.Override
      public boolean hasIsValue() {
        return valueCase_ == 2;
      }
      /**
       * <pre>
       * Значение логического типа
       * </pre>
       *
       * <code>bool is_value = 2 [json_name = "bool_value"];</code>
       * @return The isValue.
       */
      @java.lang.Override
      public boolean getIsValue() {
        if (valueCase_ == 2) {
          return (java.lang.Boolean) value_;
        }
        return false;
      }
      /**
       * <pre>
       * Значение логического типа
       * </pre>
       *
       * <code>bool is_value = 2 [json_name = "bool_value"];</code>
       * @param value The isValue to set.
       */
      private void setIsValue(boolean value) {
        valueCase_ = 2;
        value_ = value;
      }
      /**
       * <pre>
       * Значение логического типа
       * </pre>
       *
       * <code>bool is_value = 2 [json_name = "bool_value"];</code>
       */
      private void clearIsValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
        }
      }

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

      public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Значение статуса устройства
       * </pre>
       *
       * Protobuf type {@code keyapis.iot_connect.v1.DeviceState.Value}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.DeviceState.Value)
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.ValueOrBuilder {
        // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ValueCase
            getValueCase() {
          return instance.getValueCase();
        }

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


        /**
         * <pre>
         * Тип значения статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
         * @return The enum numeric value on the wire for type.
         */
        @java.lang.Override
        public int getTypeValue() {
          return instance.getTypeValue();
        }
        /**
         * <pre>
         * Тип значения статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
         * @param value The type to set.
         * @return This builder for chaining.
         */
        public Builder setTypeValue(int value) {
          copyOnWrite();
          instance.setTypeValue(value);
          return this;
        }
        /**
         * <pre>
         * Тип значения статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
         * @return The type.
         */
        @java.lang.Override
        public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type getType() {
          return instance.getType();
        }
        /**
         * <pre>
         * Тип значения статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
         * @param value The enum numeric value on the wire for type to set.
         * @return This builder for chaining.
         */
        public Builder setType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Type value) {
          copyOnWrite();
          instance.setType(value);
          return this;
        }
        /**
         * <pre>
         * Тип значения статуса устройства
         * </pre>
         *
         * <code>.keyapis.iot_connect.v1.DeviceState.Value.Type type = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }

        /**
         * <pre>
         * Значение логического типа
         * </pre>
         *
         * <code>bool is_value = 2 [json_name = "bool_value"];</code>
         * @return Whether the isValue field is set.
         */
        @java.lang.Override
        public boolean hasIsValue() {
          return instance.hasIsValue();
        }
        /**
         * <pre>
         * Значение логического типа
         * </pre>
         *
         * <code>bool is_value = 2 [json_name = "bool_value"];</code>
         * @return The isValue.
         */
        @java.lang.Override
        public boolean getIsValue() {
          return instance.getIsValue();
        }
        /**
         * <pre>
         * Значение логического типа
         * </pre>
         *
         * <code>bool is_value = 2 [json_name = "bool_value"];</code>
         * @param value The isValue to set.
         * @return This builder for chaining.
         */
        public Builder setIsValue(boolean value) {
          copyOnWrite();
          instance.setIsValue(value);
          return this;
        }
        /**
         * <pre>
         * Значение логического типа
         * </pre>
         *
         * <code>bool is_value = 2 [json_name = "bool_value"];</code>
         * @return This builder for chaining.
         */
        public Builder clearIsValue() {
          copyOnWrite();
          instance.clearIsValue();
          return this;
        }

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


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

      public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    public static final int STATE_KEY_TYPE_FIELD_NUMBER = 1;
    private int stateKeyType_;
    /**
     * <pre>
     * Тип статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
     * @return The enum numeric value on the wire for stateKeyType.
     */
    @java.lang.Override
    public int getStateKeyTypeValue() {
      return stateKeyType_;
    }
    /**
     * <pre>
     * Тип статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
     * @return The stateKeyType.
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType getStateKeyType() {
      ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType result = ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType.forNumber(stateKeyType_);
      return result == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Тип статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
     * @param value The enum numeric value on the wire for stateKeyType to set.
     */
    private void setStateKeyTypeValue(int value) {
        stateKeyType_ = value;
    }
    /**
     * <pre>
     * Тип статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
     * @param value The stateKeyType to set.
     */
    private void setStateKeyType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType value) {
      stateKeyType_ = value.getNumber();

    }
    /**
     * <pre>
     * Тип статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
     */
    private void clearStateKeyType() {

      stateKeyType_ = 0;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value value_;
    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
     */
    @java.lang.Override
    public boolean hasValue() {
      return value_ != null;
    }
    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value getValue() {
      return value_ == null ? ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.getDefaultInstance() : value_;
    }
    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
     */
    private void setValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value value) {
      value.getClass();
  value_ = value;

      }
    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value value) {
      value.getClass();
  if (value_ != null &&
          value_ != ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.getDefaultInstance()) {
        value_ =
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.newBuilder(value_).mergeFrom(value).buildPartial();
      } else {
        value_ = value;
      }

    }
    /**
     * <pre>
     * Значение статуса устройства
     * </pre>
     *
     * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
     */
    private void clearValue() {  value_ = null;

    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Статус устройства
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.DeviceState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.DeviceState)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Тип статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
       * @return The enum numeric value on the wire for stateKeyType.
       */
      @java.lang.Override
      public int getStateKeyTypeValue() {
        return instance.getStateKeyTypeValue();
      }
      /**
       * <pre>
       * Тип статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
       * @param value The stateKeyType to set.
       * @return This builder for chaining.
       */
      public Builder setStateKeyTypeValue(int value) {
        copyOnWrite();
        instance.setStateKeyTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * Тип статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
       * @return The stateKeyType.
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType getStateKeyType() {
        return instance.getStateKeyType();
      }
      /**
       * <pre>
       * Тип статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
       * @param value The enum numeric value on the wire for stateKeyType to set.
       * @return This builder for chaining.
       */
      public Builder setStateKeyType(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.KeyType value) {
        copyOnWrite();
        instance.setStateKeyType(value);
        return this;
      }
      /**
       * <pre>
       * Тип статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.KeyType state_key_type = 1 [json_name = "key"];</code>
       * @return This builder for chaining.
       */
      public Builder clearStateKeyType() {
        copyOnWrite();
        instance.clearStateKeyType();
        return this;
      }

      /**
       * <pre>
       * Значение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * Значение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * Значение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
       */
      public Builder setValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
        }
      /**
       * <pre>
       * Значение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
       */
      public Builder setValue(
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value.Builder builderForValue) {
        copyOnWrite();
        instance.setValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Значение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
       */
      public Builder mergeValue(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState.Value value) {
        copyOnWrite();
        instance.mergeValue(value);
        return this;
      }
      /**
       * <pre>
       * Значение статуса устройства
       * </pre>
       *
       * <code>.keyapis.iot_connect.v1.DeviceState.Value value = 2;</code>
       */
      public Builder clearValue() {  copyOnWrite();
        instance.clearValue();
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос метода получения устройств, доступных пользователю
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.GetCallbackDevicesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.GetCallbackDevicesRequest)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesRequestOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetCallbackDevicesResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.GetCallbackDevicesResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> 
        getDataList();
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device getData(int index);
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    int getDataCount();
  }
  /**
   * <pre>
   * Ответ на запрос метода получения устройств, доступных пользователю
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.GetCallbackDevicesResponse}
   */
  public  static final class GetCallbackDevicesResponse extends
      com.google.protobuf.GeneratedMessageLite<
          GetCallbackDevicesResponse, GetCallbackDevicesResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.GetCallbackDevicesResponse)
      GetCallbackDevicesResponseOrBuilder {
    private GetCallbackDevicesResponse() {
      data_ = emptyProtobufList();
    }
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> data_;
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> getDataList() {
      return data_;
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    public java.util.List<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceOrBuilder> 
        getDataOrBuilderList() {
      return data_;
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    @java.lang.Override
    public int getDataCount() {
      return data_.size();
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device getData(int index) {
      return data_.get(index);
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceOrBuilder getDataOrBuilder(
        int index) {
      return data_.get(index);
    }
    private void ensureDataIsMutable() {
      com.google.protobuf.Internal.ProtobufList<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> tmp = data_;
      if (!tmp.isModifiable()) {
        data_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    private void setData(
        int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device value) {
      value.getClass();
  ensureDataIsMutable();
      data_.set(index, value);
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    private void addData(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device value) {
      value.getClass();
  ensureDataIsMutable();
      data_.add(value);
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    private void addData(
        int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device value) {
      value.getClass();
  ensureDataIsMutable();
      data_.add(index, value);
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    private void addAllData(
        java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> values) {
      ensureDataIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, data_);
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    private void clearData() {
      data_ = emptyProtobufList();
    }
    /**
     * <pre>
     * Домофоны, доступные пользователю
     * </pre>
     *
     * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
     */
    private void removeData(int index) {
      ensureDataIsMutable();
      data_.remove(index);
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> getDataList() {
        return java.util.Collections.unmodifiableList(
            instance.getDataList());
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      @java.lang.Override
      public int getDataCount() {
        return instance.getDataCount();
      }/**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device getData(int index) {
        return instance.getData(index);
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder setData(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device value) {
        copyOnWrite();
        instance.setData(index, value);
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder setData(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device.Builder builderForValue) {
        copyOnWrite();
        instance.setData(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder addData(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device value) {
        copyOnWrite();
        instance.addData(value);
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder addData(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device value) {
        copyOnWrite();
        instance.addData(index, value);
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder addData(
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device.Builder builderForValue) {
        copyOnWrite();
        instance.addData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder addData(
          int index, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device.Builder builderForValue) {
        copyOnWrite();
        instance.addData(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder addAllData(
          java.lang.Iterable<? extends ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.Device> values) {
        copyOnWrite();
        instance.addAllData(values);
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }
      /**
       * <pre>
       * Домофоны, доступные пользователю
       * </pre>
       *
       * <code>repeated .keyapis.iot_connect.v1.Device data = 1;</code>
       */
      public Builder removeData(int index) {
        copyOnWrite();
        instance.removeData(index);
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.GetCallbackDevicesResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostCallbackQueryRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.PostCallbackQueryRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @return A list containing the devices.
     */
    java.util.List<java.lang.String>
        getDevicesList();
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @return The count of devices.
     */
    int getDevicesCount();
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param index The index of the element to return.
     * @return The devices at the given index.
     */
    java.lang.String getDevices(int index);
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param index The index of the element to return.
     * @return The devices at the given index.
     */
    com.google.protobuf.ByteString
        getDevicesBytes(int index);
  }
  /**
   * <pre>
   * Запрос статуса домофонов пользователя
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackQueryRequest}
   */
  public  static final class PostCallbackQueryRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PostCallbackQueryRequest, PostCallbackQueryRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.PostCallbackQueryRequest)
      PostCallbackQueryRequestOrBuilder {
    private PostCallbackQueryRequest() {
      devices_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    public static final int DEVICES_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> devices_;
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @return A list containing the devices.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getDevicesList() {
      return devices_;
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @return The count of devices.
     */
    @java.lang.Override
    public int getDevicesCount() {
      return devices_.size();
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param index The index of the element to return.
     * @return The devices at the given index.
     */
    @java.lang.Override
    public java.lang.String getDevices(int index) {
      return devices_.get(index);
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the devices at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDevicesBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          devices_.get(index));
    }
    private void ensureDevicesIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          devices_;  if (!tmp.isModifiable()) {
        devices_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param index The index to set the value at.
     * @param value The devices to set.
     */
    private void setDevices(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureDevicesIsMutable();
      devices_.set(index, value);
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param value The devices to add.
     */
    private void addDevices(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureDevicesIsMutable();
      devices_.add(value);
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param values The devices to add.
     */
    private void addAllDevices(
        java.lang.Iterable<java.lang.String> values) {
      ensureDevicesIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, devices_);
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     */
    private void clearDevices() {
      devices_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <pre>
     * Массив идентификаторов домофонов пользователя
     * </pre>
     *
     * <code>repeated string devices = 1;</code>
     * @param value The bytes of the devices to add.
     */
    private void addDevicesBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      ensureDevicesIsMutable();
      devices_.add(value.toStringUtf8());
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @return A list containing the devices.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getDevicesList() {
        return java.util.Collections.unmodifiableList(
            instance.getDevicesList());
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @return The count of devices.
       */
      @java.lang.Override
      public int getDevicesCount() {
        return instance.getDevicesCount();
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @param index The index of the element to return.
       * @return The devices at the given index.
       */
      @java.lang.Override
      public java.lang.String getDevices(int index) {
        return instance.getDevices(index);
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the devices at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDevicesBytes(int index) {
        return instance.getDevicesBytes(index);
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @param index The index to set the value at.
       * @param value The devices to set.
       * @return This builder for chaining.
       */
      public Builder setDevices(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setDevices(index, value);
        return this;
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @param value The devices to add.
       * @return This builder for chaining.
       */
      public Builder addDevices(
          java.lang.String value) {
        copyOnWrite();
        instance.addDevices(value);
        return this;
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @param values The devices to add.
       * @return This builder for chaining.
       */
      public Builder addAllDevices(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllDevices(values);
        return this;
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDevices() {
        copyOnWrite();
        instance.clearDevices();
        return this;
      }
      /**
       * <pre>
       * Массив идентификаторов домофонов пользователя
       * </pre>
       *
       * <code>repeated string devices = 1;</code>
       * @param value The bytes of the devices to add.
       * @return This builder for chaining.
       */
      public Builder addDevicesBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addDevicesBytes(value);
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostCallbackQueryResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.PostCallbackQueryResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    int getDataCount();
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    boolean containsData(
        java.lang.String key);
    /**
     * Use {@link #getDataMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray>
    getData();
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray>
    getDataMap();
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */

    /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray getDataOrDefault(
        java.lang.String key,
        /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray defaultValue);
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */

    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray getDataOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Ответ на запрос статуса домофонов пользователя
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackQueryResponse}
   */
  public  static final class PostCallbackQueryResponse extends
      com.google.protobuf.GeneratedMessageLite<
          PostCallbackQueryResponse, PostCallbackQueryResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.PostCallbackQueryResponse)
      PostCallbackQueryResponseOrBuilder {
    private PostCallbackQueryResponse() {
    }
    public static final int DATA_FIELD_NUMBER = 1;
    private static final class DataDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray.getDefaultInstance());
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> data_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray>
    internalGetData() {
      return data_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray>
    internalGetMutableData() {
      if (!data_.isMutable()) {
        data_ = data_.mutableCopy();
      }
      return data_;
    }
    @java.lang.Override

    public int getDataCount() {
      return internalGetData().size();
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    @java.lang.Override

    public boolean containsData(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetData().containsKey(key);
    }
    /**
     * Use {@link #getDataMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> getData() {
      return getDataMap();
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> getDataMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetData());
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    @java.lang.Override

    public /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray getDataOrDefault(
        java.lang.String key,
        /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> map =
          internalGetData();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    @java.lang.Override

    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray getDataOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> map =
          internalGetData();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
     */
    private java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray>
    getMutableDataMap() {
      return internalGetMutableData();
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос статуса домофонов пользователя
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackQueryResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.PostCallbackQueryResponse)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryResponseOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      @java.lang.Override

      public int getDataCount() {
        return instance.getDataMap().size();
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
       */
      @java.lang.Override

      public boolean containsData(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getDataMap().containsKey(key);
      }

      public Builder clearData() {
        copyOnWrite();
        instance.getMutableDataMap().clear();
        return this;
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
       */

      public Builder removeData(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableDataMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getDataMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> getData() {
        return getDataMap();
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> getDataMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getDataMap());
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
       */
      @java.lang.Override

      public /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray getDataOrDefault(
          java.lang.String key,
          /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> map =
            instance.getDataMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
       */
      @java.lang.Override

      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray getDataOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> map =
            instance.getDataMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
       */
      public Builder putData(
          java.lang.String key,
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray value) {
        java.lang.Class<?> keyClass = key.getClass();
        java.lang.Class<?> valueClass = value.getClass();
        copyOnWrite();
        instance.getMutableDataMap().put(key, value);
        return this;
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceStateArray&gt; data = 1 [json_name = "devices"];</code>
       */
      public Builder putAllData(
          java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceStateArray> values) {
        copyOnWrite();
        instance.getMutableDataMap().putAll(values);
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackQueryResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostCallbackCommandRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.PostCallbackCommandRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    int getDevicesCount();
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    boolean containsDevices(
        java.lang.String key);
    /**
     * Use {@link #getDevicesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray>
    getDevices();
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray>
    getDevicesMap();
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */

    /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray getDevicesOrDefault(
        java.lang.String key,
        /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray defaultValue);
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */

    ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray getDevicesOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Запрос на изменение статуса домофона
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackCommandRequest}
   */
  public  static final class PostCallbackCommandRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PostCallbackCommandRequest, PostCallbackCommandRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.PostCallbackCommandRequest)
      PostCallbackCommandRequestOrBuilder {
    private PostCallbackCommandRequest() {
    }
    public static final int DEVICES_FIELD_NUMBER = 1;
    private static final class DevicesDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray.getDefaultInstance());
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> devices_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray>
    internalGetDevices() {
      return devices_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray>
    internalGetMutableDevices() {
      if (!devices_.isMutable()) {
        devices_ = devices_.mutableCopy();
      }
      return devices_;
    }
    @java.lang.Override

    public int getDevicesCount() {
      return internalGetDevices().size();
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    @java.lang.Override

    public boolean containsDevices(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetDevices().containsKey(key);
    }
    /**
     * Use {@link #getDevicesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> getDevices() {
      return getDevicesMap();
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> getDevicesMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetDevices());
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    @java.lang.Override

    public /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray getDevicesOrDefault(
        java.lang.String key,
        /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> map =
          internalGetDevices();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    @java.lang.Override

    public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray getDevicesOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> map =
          internalGetDevices();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <pre>
     * Массив домофонов со статусами
     * </pre>
     *
     * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
     */
    private java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray>
    getMutableDevicesMap() {
      return internalGetMutableDevices();
    }

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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос на изменение статуса домофона
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackCommandRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.PostCallbackCommandRequest)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandRequestOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      @java.lang.Override

      public int getDevicesCount() {
        return instance.getDevicesMap().size();
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
       */
      @java.lang.Override

      public boolean containsDevices(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getDevicesMap().containsKey(key);
      }

      public Builder clearDevices() {
        copyOnWrite();
        instance.getMutableDevicesMap().clear();
        return this;
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
       */

      public Builder removeDevices(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableDevicesMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getDevicesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> getDevices() {
        return getDevicesMap();
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> getDevicesMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getDevicesMap());
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
       */
      @java.lang.Override

      public /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray getDevicesOrDefault(
          java.lang.String key,
          /* nullable */
ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> map =
            instance.getDevicesMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
       */
      @java.lang.Override

      public ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray getDevicesOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> map =
            instance.getDevicesMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
       */
      public Builder putDevices(
          java.lang.String key,
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray value) {
        java.lang.Class<?> keyClass = key.getClass();
        java.lang.Class<?> valueClass = value.getClass();
        copyOnWrite();
        instance.getMutableDevicesMap().put(key, value);
        return this;
      }
      /**
       * <pre>
       * Массив домофонов со статусами
       * </pre>
       *
       * <code>map&lt;string, .keyapis.iot_connect.v1.DeviceCommandArray&gt; devices = 1;</code>
       */
      public Builder putAllDevices(
          java.util.Map<java.lang.String, ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.DeviceCommandArray> values) {
        copyOnWrite();
        instance.getMutableDevicesMap().putAll(values);
        return this;
      }

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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostCallbackCommandResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.PostCallbackCommandResponse)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Ответ на запрос на изменение статуса домофона
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackCommandResponse}
   */
  public  static final class PostCallbackCommandResponse extends
      com.google.protobuf.GeneratedMessageLite<
          PostCallbackCommandResponse, PostCallbackCommandResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.PostCallbackCommandResponse)
      PostCallbackCommandResponseOrBuilder {
    private PostCallbackCommandResponse() {
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос на изменение статуса домофона
     * </pre>
     *
     * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackCommandResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.iot_connect.v1.PostCallbackCommandResponse)
        ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponseOrBuilder {
      // Construct using ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackCommandResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostCallbackUnlinkRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.PostCallbackUnlinkRequest)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Запрос метода разъединения аккаунтов
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackUnlinkRequest}
   */
  public  static final class PostCallbackUnlinkRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PostCallbackUnlinkRequest, PostCallbackUnlinkRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.PostCallbackUnlinkRequest)
      PostCallbackUnlinkRequestOrBuilder {
    private PostCallbackUnlinkRequest() {
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostCallbackUnlinkResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.iot_connect.v1.PostCallbackUnlinkResponse)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Ответ на запрос метода разъединения аккаунтов
   * </pre>
   *
   * Protobuf type {@code keyapis.iot_connect.v1.PostCallbackUnlinkResponse}
   */
  public  static final class PostCallbackUnlinkResponse extends
      com.google.protobuf.GeneratedMessageLite<
          PostCallbackUnlinkResponse, PostCallbackUnlinkResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.iot_connect.v1.PostCallbackUnlinkResponse)
      PostCallbackUnlinkResponseOrBuilder {
    private PostCallbackUnlinkResponse() {
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


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


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

    public static ru.keyapis.iot_connect.v1.KeyapisIotConnectV1Proto.PostCallbackUnlinkResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
