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

package ru.keyapis.access_control.v1;

public final class KeyapisAccessControlV1Proto {
  private KeyapisAccessControlV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface RoomUserOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.access_control.v1.RoomUser)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * ОРПОН дома
     * </pre>
     *
     * <code>int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The orpon.
     */
    long getOrpon();

    /**
     * <pre>
     * Номер квартиры.
     * # Диапазон: 1..4
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    java.lang.String getRoomNumber();
    /**
     * <pre>
     * Номер квартиры.
     * # Диапазон: 1..4
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    com.google.protobuf.ByteString
        getRoomNumberBytes();

    /**
     * <pre>
     * Идентификатор пользователя.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The userId.
     */
    int getUserId();
  }
  /**
   * <pre>
   * Связь помещения и пользователя
   * </pre>
   *
   * Protobuf type {@code keyapis.access_control.v1.RoomUser}
   */
  public  static final class RoomUser extends
      com.google.protobuf.GeneratedMessageLite<
          RoomUser, RoomUser.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.access_control.v1.RoomUser)
      RoomUserOrBuilder {
    private RoomUser() {
      roomNumber_ = "";
    }
    public static final int ORPON_FIELD_NUMBER = 1;
    private long orpon_;
    /**
     * <pre>
     * ОРПОН дома
     * </pre>
     *
     * <code>int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The orpon.
     */
    @java.lang.Override
    public long getOrpon() {
      return orpon_;
    }
    /**
     * <pre>
     * ОРПОН дома
     * </pre>
     *
     * <code>int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The orpon to set.
     */
    private void setOrpon(long value) {
      
      orpon_ = value;
    }
    /**
     * <pre>
     * ОРПОН дома
     * </pre>
     *
     * <code>int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearOrpon() {

      orpon_ = 0L;
    }

    public static final int ROOM_NUMBER_FIELD_NUMBER = 2;
    private java.lang.String roomNumber_;
    /**
     * <pre>
     * Номер квартиры.
     * # Диапазон: 1..4
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The roomNumber.
     */
    @java.lang.Override
    public java.lang.String getRoomNumber() {
      return roomNumber_;
    }
    /**
     * <pre>
     * Номер квартиры.
     * # Диапазон: 1..4
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for roomNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumberBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(roomNumber_);
    }
    /**
     * <pre>
     * Номер квартиры.
     * # Диапазон: 1..4
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The roomNumber to set.
     */
    private void setRoomNumber(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      roomNumber_ = value;
    }
    /**
     * <pre>
     * Номер квартиры.
     * # Диапазон: 1..4
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearRoomNumber() {

      roomNumber_ = getDefaultInstance().getRoomNumber();
    }
    /**
     * <pre>
     * Номер квартиры.
     * # Диапазон: 1..4
     * </pre>
     *
     * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for roomNumber to set.
     */
    private void setRoomNumberBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      roomNumber_ = value.toStringUtf8();

    }

    public static final int USER_ID_FIELD_NUMBER = 3;
    private int userId_;
    /**
     * <pre>
     * Идентификатор пользователя.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The userId.
     */
    @java.lang.Override
    public int getUserId() {
      return userId_;
    }
    /**
     * <pre>
     * Идентификатор пользователя.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The userId to set.
     */
    private void setUserId(int value) {
      
      userId_ = value;
    }
    /**
     * <pre>
     * Идентификатор пользователя.
     * # Диапазон: 1..2147483647
     * </pre>
     *
     * <code>int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearUserId() {

      userId_ = 0;
    }

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

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

    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * Protobuf type {@code keyapis.access_control.v1.RoomUser}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.access_control.v1.RoomUser)
        ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserOrBuilder {
      // Construct using ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


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

      /**
       * <pre>
       * Номер квартиры.
       * # Диапазон: 1..4
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The roomNumber.
       */
      @java.lang.Override
      public java.lang.String getRoomNumber() {
        return instance.getRoomNumber();
      }
      /**
       * <pre>
       * Номер квартиры.
       * # Диапазон: 1..4
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for roomNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRoomNumberBytes() {
        return instance.getRoomNumberBytes();
      }
      /**
       * <pre>
       * Номер квартиры.
       * # Диапазон: 1..4
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumber(
          java.lang.String value) {
        copyOnWrite();
        instance.setRoomNumber(value);
        return this;
      }
      /**
       * <pre>
       * Номер квартиры.
       * # Диапазон: 1..4
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumber() {
        copyOnWrite();
        instance.clearRoomNumber();
        return this;
      }
      /**
       * <pre>
       * Номер квартиры.
       * # Диапазон: 1..4
       * </pre>
       *
       * <code>string room_number = 2 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for roomNumber to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumberBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setRoomNumberBytes(value);
        return this;
      }

      /**
       * <pre>
       * Идентификатор пользователя.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The userId.
       */
      @java.lang.Override
      public int getUserId() {
        return instance.getUserId();
      }
      /**
       * <pre>
       * Идентификатор пользователя.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {
        copyOnWrite();
        instance.setUserId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор пользователя.
       * # Диапазон: 1..2147483647
       * </pre>
       *
       * <code>int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearUserId() {
        copyOnWrite();
        instance.clearUserId();
        return this;
      }

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

    public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetRoomUserListRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.access_control.v1.GetRoomUserListRequest)
      com.google.protobuf.MessageLiteOrBuilder {

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

    /**
     * <pre>
     * Стандартный постраничный вывод
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
     * @return Whether the paging field is set.
     */
    boolean hasPaging();
    /**
     * <pre>
     * Стандартный постраничный вывод
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
     * @return The paging.
     */
    ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging getPaging();

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

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

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

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

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

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

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

    }

    public static final int PAGING_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Стандартный постраничный вывод
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
     */
    @java.lang.Override
    public boolean hasPaging() {
      return paginationCase_ == 2;
    }
    /**
     * <pre>
     * Стандартный постраничный вывод
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging getPaging() {
      if (paginationCase_ == 2) {
         return (ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging) pagination_;
      }
      return ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging.getDefaultInstance();
    }
    /**
     * <pre>
     * Стандартный постраничный вывод
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
     */
    private void setPaging(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging value) {
      value.getClass();
  pagination_ = value;
      paginationCase_ = 2;
    }
    /**
     * <pre>
     * Стандартный постраничный вывод
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
     */
    private void mergePaging(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging value) {
      value.getClass();
  if (paginationCase_ == 2 &&
          pagination_ != ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging.getDefaultInstance()) {
        pagination_ = ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging.newBuilder((ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging) pagination_)
            .mergeFrom(value).buildPartial();
      } else {
        pagination_ = value;
      }
      paginationCase_ = 2;
    }
    /**
     * <pre>
     * Стандартный постраничный вывод
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
     */
    private void clearPaging() {
      if (paginationCase_ == 2) {
        paginationCase_ = 0;
        pagination_ = null;
      }
    }

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

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

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

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

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


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

      /**
       * <pre>
       * Стандартный постраничный вывод
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
       */
      @java.lang.Override
      public boolean hasPaging() {
        return instance.hasPaging();
      }
      /**
       * <pre>
       * Стандартный постраничный вывод
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging getPaging() {
        return instance.getPaging();
      }
      /**
       * <pre>
       * Стандартный постраничный вывод
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
       */
      public Builder setPaging(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging value) {
        copyOnWrite();
        instance.setPaging(value);
        return this;
      }
      /**
       * <pre>
       * Стандартный постраничный вывод
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
       */
      public Builder setPaging(
          ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging.Builder builderForValue) {
        copyOnWrite();
        instance.setPaging(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Стандартный постраничный вывод
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
       */
      public Builder mergePaging(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging value) {
        copyOnWrite();
        instance.mergePaging(value);
        return this;
      }
      /**
       * <pre>
       * Стандартный постраничный вывод
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUserPaging paging = 2;</code>
       */
      public Builder clearPaging() {
        copyOnWrite();
        instance.clearPaging();
        return this;
      }

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

    public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetRoomUserListResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.access_control.v1.GetRoomUserListResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
     * @return The data.
     */
    ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser getData();

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

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

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

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

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

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

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

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

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

      public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * Protobuf type {@code keyapis.access_control.v1.GetRoomUserListResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.access_control.v1.GetRoomUserListResponse.Error)
          ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListResponse.Error.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

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

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


        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.access_control.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public boolean hasValidation() {
          return instance.hasValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.access_control.v1.ValidationError validation = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.ValidationError getValidation() {
          return instance.getValidation();
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.access_control.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.ValidationError value) {
          copyOnWrite();
          instance.setValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.access_control.v1.ValidationError validation = 1;</code>
         */
        public Builder setValidation(
            ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.ValidationError.Builder builderForValue) {
          copyOnWrite();
          instance.setValidation(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.access_control.v1.ValidationError validation = 1;</code>
         */
        public Builder mergeValidation(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.ValidationError value) {
          copyOnWrite();
          instance.mergeValidation(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка валидации
         * </pre>
         *
         * <code>.keyapis.access_control.v1.ValidationError validation = 1;</code>
         */
        public Builder clearValidation() {
          copyOnWrite();
          instance.clearValidation();
          return this;
        }

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


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

      public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

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

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

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

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser) type_;
      }
      return ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser.getDefaultInstance();
    }
    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
     */
    private void setData(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
     */
    private void mergeData(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser.getDefaultInstance()) {
        type_ = ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser.newBuilder((ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Связь помещения и пользователя
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
     */
    private void clearData() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

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

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

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

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

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

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


      /**
       * <pre>
       * Связь помещения и пользователя
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Связь помещения и пользователя
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Связь помещения и пользователя
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
       */
      public Builder setData(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Связь помещения и пользователя
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Связь помещения и пользователя
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUser value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Связь помещения и пользователя
       * </pre>
       *
       * <code>.keyapis.access_control.v1.RoomUser data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

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

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

    public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserListResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetRoomUserCountRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.access_control.v1.GetRoomUserCountRequest)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

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

    }

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

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

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


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

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

    public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserCountRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface GetRoomUserCountResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.access_control.v1.GetRoomUserCountResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Количество
     * </pre>
     *
     * <code>int32 data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Количество
     * </pre>
     *
     * <code>int32 data = 1;</code>
     * @return The data.
     */
    int getData();

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

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

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

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

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

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

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

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

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

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


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

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

    public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.GetRoomUserCountResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface RoomUserFilterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.access_control.v1.RoomUserFilter)
      com.google.protobuf.MessageLiteOrBuilder {

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

    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @return A list containing the roomNumbers.
     */
    java.util.List<java.lang.String>
        getRoomNumbersList();
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @return The count of roomNumbers.
     */
    int getRoomNumbersCount();
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param index The index of the element to return.
     * @return The roomNumbers at the given index.
     */
    java.lang.String getRoomNumbers(int index);
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param index The index of the element to return.
     * @return The roomNumbers at the given index.
     */
    com.google.protobuf.ByteString
        getRoomNumbersBytes(int index);

    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @return A list containing the userIds.
     */
    java.util.List<java.lang.Integer> getUserIdsList();
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @return The count of userIds.
     */
    int getUserIdsCount();
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @param index The index of the element to return.
     * @return The userIds at the given index.
     */
    int getUserIds(int index);
  }
  /**
   * <pre>
   * Фильтр по связям помещений и пользователей
   * </pre>
   *
   * Protobuf type {@code keyapis.access_control.v1.RoomUserFilter}
   */
  public  static final class RoomUserFilter extends
      com.google.protobuf.GeneratedMessageLite<
          RoomUserFilter, RoomUserFilter.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.access_control.v1.RoomUserFilter)
      RoomUserFilterOrBuilder {
    private RoomUserFilter() {
      orpons_ = emptyLongList();
      roomNumbers_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      userIds_ = emptyIntList();
    }
    public static final int ORPONS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.LongList orpons_;
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @return A list containing the orpons.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getOrponsList() {
      return orpons_;
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @return The count of orpons.
     */
    @java.lang.Override
    public int getOrponsCount() {
      return orpons_.size();
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param index The index of the element to return.
     * @return The orpons at the given index.
     */
    @java.lang.Override
    public long getOrpons(int index) {
      return orpons_.getLong(index);
    }
    private int orponsMemoizedSerializedSize = -1;
    private void ensureOrponsIsMutable() {
      com.google.protobuf.Internal.LongList tmp = orpons_;
      if (!tmp.isModifiable()) {
        orpons_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param index The index to set the value at.
     * @param value The orpons to set.
     */
    private void setOrpons(
        int index, long value) {
      ensureOrponsIsMutable();
      orpons_.setLong(index, value);
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param value The orpons to add.
     */
    private void addOrpons(long value) {
      ensureOrponsIsMutable();
      orpons_.addLong(value);
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     * @param values The orpons to add.
     */
    private void addAllOrpons(
        java.lang.Iterable<? extends java.lang.Long> values) {
      ensureOrponsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, orpons_);
    }
    /**
     * <pre>
     * По ОРПОНам
     * </pre>
     *
     * <code>repeated int64 orpons = 1;</code>
     */
    private void clearOrpons() {
      orpons_ = emptyLongList();
    }

    public static final int ROOM_NUMBERS_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> roomNumbers_;
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @return A list containing the roomNumbers.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getRoomNumbersList() {
      return roomNumbers_;
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @return The count of roomNumbers.
     */
    @java.lang.Override
    public int getRoomNumbersCount() {
      return roomNumbers_.size();
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param index The index of the element to return.
     * @return The roomNumbers at the given index.
     */
    @java.lang.Override
    public java.lang.String getRoomNumbers(int index) {
      return roomNumbers_.get(index);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the roomNumbers at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRoomNumbersBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          roomNumbers_.get(index));
    }
    private void ensureRoomNumbersIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          roomNumbers_;  if (!tmp.isModifiable()) {
        roomNumbers_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param index The index to set the value at.
     * @param value The roomNumbers to set.
     */
    private void setRoomNumbers(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureRoomNumbersIsMutable();
      roomNumbers_.set(index, value);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param value The roomNumbers to add.
     */
    private void addRoomNumbers(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureRoomNumbersIsMutable();
      roomNumbers_.add(value);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param values The roomNumbers to add.
     */
    private void addAllRoomNumbers(
        java.lang.Iterable<java.lang.String> values) {
      ensureRoomNumbersIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, roomNumbers_);
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     */
    private void clearRoomNumbers() {
      roomNumbers_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <pre>
     * По номерам квартир
     * </pre>
     *
     * <code>repeated string room_numbers = 2;</code>
     * @param value The bytes of the roomNumbers to add.
     */
    private void addRoomNumbersBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      ensureRoomNumbersIsMutable();
      roomNumbers_.add(value.toStringUtf8());
    }

    public static final int USER_IDS_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.IntList userIds_;
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @return A list containing the userIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getUserIdsList() {
      return userIds_;
    }
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @return The count of userIds.
     */
    @java.lang.Override
    public int getUserIdsCount() {
      return userIds_.size();
    }
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @param index The index of the element to return.
     * @return The userIds at the given index.
     */
    @java.lang.Override
    public int getUserIds(int index) {
      return userIds_.getInt(index);
    }
    private int userIdsMemoizedSerializedSize = -1;
    private void ensureUserIdsIsMutable() {
      com.google.protobuf.Internal.IntList tmp = userIds_;
      if (!tmp.isModifiable()) {
        userIds_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @param index The index to set the value at.
     * @param value The userIds to set.
     */
    private void setUserIds(
        int index, int value) {
      ensureUserIdsIsMutable();
      userIds_.setInt(index, value);
    }
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @param value The userIds to add.
     */
    private void addUserIds(int value) {
      ensureUserIdsIsMutable();
      userIds_.addInt(value);
    }
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     * @param values The userIds to add.
     */
    private void addAllUserIds(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensureUserIdsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, userIds_);
    }
    /**
     * <pre>
     * По идентификаторам пользователей
     * </pre>
     *
     * <code>repeated int32 user_ids = 3;</code>
     */
    private void clearUserIds() {
      userIds_ = emptyIntList();
    }

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

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

    /**
     * <pre>
     * Фильтр по связям помещений и пользователей
     * </pre>
     *
     * Protobuf type {@code keyapis.access_control.v1.RoomUserFilter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserFilter, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.access_control.v1.RoomUserFilter)
        ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserFilterOrBuilder {
      // Construct using ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserFilter.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


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

      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @return A list containing the roomNumbers.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getRoomNumbersList() {
        return java.util.Collections.unmodifiableList(
            instance.getRoomNumbersList());
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @return The count of roomNumbers.
       */
      @java.lang.Override
      public int getRoomNumbersCount() {
        return instance.getRoomNumbersCount();
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @param index The index of the element to return.
       * @return The roomNumbers at the given index.
       */
      @java.lang.Override
      public java.lang.String getRoomNumbers(int index) {
        return instance.getRoomNumbers(index);
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the roomNumbers at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRoomNumbersBytes(int index) {
        return instance.getRoomNumbersBytes(index);
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @param index The index to set the value at.
       * @param value The roomNumbers to set.
       * @return This builder for chaining.
       */
      public Builder setRoomNumbers(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setRoomNumbers(index, value);
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @param value The roomNumbers to add.
       * @return This builder for chaining.
       */
      public Builder addRoomNumbers(
          java.lang.String value) {
        copyOnWrite();
        instance.addRoomNumbers(value);
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @param values The roomNumbers to add.
       * @return This builder for chaining.
       */
      public Builder addAllRoomNumbers(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllRoomNumbers(values);
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRoomNumbers() {
        copyOnWrite();
        instance.clearRoomNumbers();
        return this;
      }
      /**
       * <pre>
       * По номерам квартир
       * </pre>
       *
       * <code>repeated string room_numbers = 2;</code>
       * @param value The bytes of the roomNumbers to add.
       * @return This builder for chaining.
       */
      public Builder addRoomNumbersBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addRoomNumbersBytes(value);
        return this;
      }

      /**
       * <pre>
       * По идентификаторам пользователей
       * </pre>
       *
       * <code>repeated int32 user_ids = 3;</code>
       * @return A list containing the userIds.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getUserIdsList() {
        return java.util.Collections.unmodifiableList(
            instance.getUserIdsList());
      }
      /**
       * <pre>
       * По идентификаторам пользователей
       * </pre>
       *
       * <code>repeated int32 user_ids = 3;</code>
       * @return The count of userIds.
       */
      @java.lang.Override
      public int getUserIdsCount() {
        return instance.getUserIdsCount();
      }
      /**
       * <pre>
       * По идентификаторам пользователей
       * </pre>
       *
       * <code>repeated int32 user_ids = 3;</code>
       * @param index The index of the element to return.
       * @return The userIds at the given index.
       */
      @java.lang.Override
      public int getUserIds(int index) {
        return instance.getUserIds(index);
      }
      /**
       * <pre>
       * По идентификаторам пользователей
       * </pre>
       *
       * <code>repeated int32 user_ids = 3;</code>
       * @param value The userIds to set.
       * @return This builder for chaining.
       */
      public Builder setUserIds(
          int index, int value) {
        copyOnWrite();
        instance.setUserIds(index, value);
        return this;
      }
      /**
       * <pre>
       * По идентификаторам пользователей
       * </pre>
       *
       * <code>repeated int32 user_ids = 3;</code>
       * @param value The userIds to add.
       * @return This builder for chaining.
       */
      public Builder addUserIds(int value) {
        copyOnWrite();
        instance.addUserIds(value);
        return this;
      }
      /**
       * <pre>
       * По идентификаторам пользователей
       * </pre>
       *
       * <code>repeated int32 user_ids = 3;</code>
       * @param values The userIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllUserIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllUserIds(values);
        return this;
      }
      /**
       * <pre>
       * По идентификаторам пользователей
       * </pre>
       *
       * <code>repeated int32 user_ids = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserIds() {
        copyOnWrite();
        instance.clearUserIds();
        return this;
      }

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

    public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserFilter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface RoomUserPagingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.access_control.v1.RoomUserPaging)
      com.google.protobuf.MessageLiteOrBuilder {

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

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

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

    /**
     * <pre>
     * Сдвиг.
     * # Диапазон: 0..2147483647
     * </pre>
     *
     * <code>int32 offset = 4;</code>
     * @return The offset.
     */
    int getOffset();
  }
  /**
   * <pre>
   * Постраничный вывод
   * </pre>
   *
   * Protobuf type {@code keyapis.access_control.v1.RoomUserPaging}
   */
  public  static final class RoomUserPaging extends
      com.google.protobuf.GeneratedMessageLite<
          RoomUserPaging, RoomUserPaging.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.access_control.v1.RoomUserPaging)
      RoomUserPagingOrBuilder {
    private RoomUserPaging() {
    }
    /**
     * <pre>
     * Справочник типов значений сортировки.
     * # Тип: byte
     * </pre>
     *
     * Protobuf enum {@code keyapis.access_control.v1.RoomUserPaging.OrderByType}
     */
    public enum OrderByType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>ORDER_BY_TYPE_UNKNOWN = 0;</code>
       */
      ORDER_BY_TYPE_UNKNOWN(0),
      /**
       * <pre>
       * По идентификатору
       * </pre>
       *
       * <code>USER_ID = 1;</code>
       */
      USER_ID(1),
      /**
       * <pre>
       * По ОРПОНу и номеру
       * </pre>
       *
       * <code>ORPON_THEN_NUMBER = 2;</code>
       */
      ORPON_THEN_NUMBER(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * Значение не указано
       * </pre>
       *
       * <code>ORDER_BY_TYPE_UNKNOWN = 0;</code>
       */
      public static final int ORDER_BY_TYPE_UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * По идентификатору
       * </pre>
       *
       * <code>USER_ID = 1;</code>
       */
      public static final int USER_ID_VALUE = 1;
      /**
       * <pre>
       * По ОРПОНу и номеру
       * </pre>
       *
       * <code>ORPON_THEN_NUMBER = 2;</code>
       */
      public static final int ORPON_THEN_NUMBER_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 OrderByType valueOf(int value) {
        return forNumber(value);
      }

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:keyapis.access_control.v1.RoomUserPaging.OrderByType)
    }

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

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


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

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

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:keyapis.access_control.v1.RoomUserPaging.DirectionType)
    }

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

    }
    /**
     * <pre>
     * Тип значения сортировки.
     * Если значение не передано, то будет взято значение по умолчанию.
     * # По умолчанию: USER_ID
     * </pre>
     *
     * <code>.keyapis.access_control.v1.RoomUserPaging.OrderByType order_by_type = 1;</code>
     */
    private void clearOrderByType() {

      orderByType_ = 0;
    }

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

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

      directionType_ = 0;
    }

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

      limit_ = 0;
    }

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

      offset_ = 0;
    }

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

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

    /**
     * <pre>
     * Постраничный вывод
     * </pre>
     *
     * Protobuf type {@code keyapis.access_control.v1.RoomUserPaging}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.access_control.v1.RoomUserPaging)
        ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPagingOrBuilder {
      // Construct using ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


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

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

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

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

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

    public static ru.keyapis.access_control.v1.KeyapisAccessControlV1Proto.RoomUserPaging getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
