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

#ifndef GOOGLE_PROTOBUF_INCLUDED_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>

#include "google/protobuf/port_def.inc"
#if PROTOBUF_VERSION < 4023000
#error "This file was generated by a newer version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please update"
#error "your headers."
#endif  // PROTOBUF_VERSION

#if 4023001 < PROTOBUF_MIN_PROTOC_VERSION
#error "This file was generated by an older version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please"
#error "regenerate this file with a newer version of protoc."
#endif  // PROTOBUF_MIN_PROTOC_VERSION
#include "google/protobuf/port_undef.inc"
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/protobuf/generated_enum_util.h"
#include "google/api/annotations.pb.h"
#include "google/api/field_behavior.pb.h"
#include "google/protobuf/timestamp.pb.h"
#include "google/protobuf/wrappers.pb.h"
#include "keyapis/access_control/v1/keyapis_access_control_access_control_v1.pb.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto

PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto {
  static const ::uint32_t offsets[];
};
namespace keyapis {
namespace access_control {
namespace v1 {
class GetRoomUserCountRequest;
struct GetRoomUserCountRequestDefaultTypeInternal;
extern GetRoomUserCountRequestDefaultTypeInternal _GetRoomUserCountRequest_default_instance_;
class GetRoomUserCountResponse;
struct GetRoomUserCountResponseDefaultTypeInternal;
extern GetRoomUserCountResponseDefaultTypeInternal _GetRoomUserCountResponse_default_instance_;
class GetRoomUserListRequest;
struct GetRoomUserListRequestDefaultTypeInternal;
extern GetRoomUserListRequestDefaultTypeInternal _GetRoomUserListRequest_default_instance_;
class GetRoomUserListResponse;
struct GetRoomUserListResponseDefaultTypeInternal;
extern GetRoomUserListResponseDefaultTypeInternal _GetRoomUserListResponse_default_instance_;
class GetRoomUserListResponse_Error;
struct GetRoomUserListResponse_ErrorDefaultTypeInternal;
extern GetRoomUserListResponse_ErrorDefaultTypeInternal _GetRoomUserListResponse_Error_default_instance_;
class RoomUser;
struct RoomUserDefaultTypeInternal;
extern RoomUserDefaultTypeInternal _RoomUser_default_instance_;
class RoomUserFilter;
struct RoomUserFilterDefaultTypeInternal;
extern RoomUserFilterDefaultTypeInternal _RoomUserFilter_default_instance_;
class RoomUserPaging;
struct RoomUserPagingDefaultTypeInternal;
extern RoomUserPagingDefaultTypeInternal _RoomUserPaging_default_instance_;
}  // namespace v1
}  // namespace access_control
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template <>
::keyapis::access_control::v1::GetRoomUserCountRequest* Arena::CreateMaybeMessage<::keyapis::access_control::v1::GetRoomUserCountRequest>(Arena*);
template <>
::keyapis::access_control::v1::GetRoomUserCountResponse* Arena::CreateMaybeMessage<::keyapis::access_control::v1::GetRoomUserCountResponse>(Arena*);
template <>
::keyapis::access_control::v1::GetRoomUserListRequest* Arena::CreateMaybeMessage<::keyapis::access_control::v1::GetRoomUserListRequest>(Arena*);
template <>
::keyapis::access_control::v1::GetRoomUserListResponse* Arena::CreateMaybeMessage<::keyapis::access_control::v1::GetRoomUserListResponse>(Arena*);
template <>
::keyapis::access_control::v1::GetRoomUserListResponse_Error* Arena::CreateMaybeMessage<::keyapis::access_control::v1::GetRoomUserListResponse_Error>(Arena*);
template <>
::keyapis::access_control::v1::RoomUser* Arena::CreateMaybeMessage<::keyapis::access_control::v1::RoomUser>(Arena*);
template <>
::keyapis::access_control::v1::RoomUserFilter* Arena::CreateMaybeMessage<::keyapis::access_control::v1::RoomUserFilter>(Arena*);
template <>
::keyapis::access_control::v1::RoomUserPaging* Arena::CreateMaybeMessage<::keyapis::access_control::v1::RoomUserPaging>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

namespace keyapis {
namespace access_control {
namespace v1 {
enum RoomUserPaging_OrderByType : int {
  RoomUserPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN = 0,
  RoomUserPaging_OrderByType_USER_ID = 1,
  RoomUserPaging_OrderByType_ORPON_THEN_NUMBER = 2,
  RoomUserPaging_OrderByType_RoomUserPaging_OrderByType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  RoomUserPaging_OrderByType_RoomUserPaging_OrderByType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool RoomUserPaging_OrderByType_IsValid(int value);
constexpr RoomUserPaging_OrderByType RoomUserPaging_OrderByType_OrderByType_MIN = static_cast<RoomUserPaging_OrderByType>(0);
constexpr RoomUserPaging_OrderByType RoomUserPaging_OrderByType_OrderByType_MAX = static_cast<RoomUserPaging_OrderByType>(2);
constexpr int RoomUserPaging_OrderByType_OrderByType_ARRAYSIZE = 2 + 1;
const std::string& RoomUserPaging_OrderByType_Name(RoomUserPaging_OrderByType value);
template <typename T>
const std::string& RoomUserPaging_OrderByType_Name(T value) {
  static_assert(std::is_same<T, RoomUserPaging_OrderByType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to OrderByType_Name().");
  return RoomUserPaging_OrderByType_Name(static_cast<RoomUserPaging_OrderByType>(value));
}
const std::string& RoomUserPaging_OrderByType_Name(RoomUserPaging_OrderByType value);
bool RoomUserPaging_OrderByType_Parse(absl::string_view name, RoomUserPaging_OrderByType* value);
enum RoomUserPaging_DirectionType : int {
  RoomUserPaging_DirectionType_DIRECTION_TYPE_UNKNOWN = 0,
  RoomUserPaging_DirectionType_DESC = 1,
  RoomUserPaging_DirectionType_ASC = 2,
  RoomUserPaging_DirectionType_RoomUserPaging_DirectionType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  RoomUserPaging_DirectionType_RoomUserPaging_DirectionType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool RoomUserPaging_DirectionType_IsValid(int value);
constexpr RoomUserPaging_DirectionType RoomUserPaging_DirectionType_DirectionType_MIN = static_cast<RoomUserPaging_DirectionType>(0);
constexpr RoomUserPaging_DirectionType RoomUserPaging_DirectionType_DirectionType_MAX = static_cast<RoomUserPaging_DirectionType>(2);
constexpr int RoomUserPaging_DirectionType_DirectionType_ARRAYSIZE = 2 + 1;
const std::string& RoomUserPaging_DirectionType_Name(RoomUserPaging_DirectionType value);
template <typename T>
const std::string& RoomUserPaging_DirectionType_Name(T value) {
  static_assert(std::is_same<T, RoomUserPaging_DirectionType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to DirectionType_Name().");
  return RoomUserPaging_DirectionType_Name(static_cast<RoomUserPaging_DirectionType>(value));
}
const std::string& RoomUserPaging_DirectionType_Name(RoomUserPaging_DirectionType value);
bool RoomUserPaging_DirectionType_Parse(absl::string_view name, RoomUserPaging_DirectionType* value);

// ===================================================================


// -------------------------------------------------------------------

class RoomUser final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.RoomUser) */ {
 public:
  inline RoomUser() : RoomUser(nullptr) {}
  ~RoomUser() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR RoomUser(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RoomUser(const RoomUser& from);
  RoomUser(RoomUser&& from) noexcept
    : RoomUser() {
    *this = ::std::move(from);
  }

  inline RoomUser& operator=(const RoomUser& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoomUser& operator=(RoomUser&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const RoomUser& default_instance() {
    return *internal_default_instance();
  }
  static inline const RoomUser* internal_default_instance() {
    return reinterpret_cast<const RoomUser*>(
               &_RoomUser_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(RoomUser& a, RoomUser& b) {
    a.Swap(&b);
  }
  inline void Swap(RoomUser* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RoomUser* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  RoomUser* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RoomUser>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const RoomUser& from);
  void MergeFrom(const RoomUser& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(RoomUser* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.RoomUser";
  }
  protected:
  explicit RoomUser(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kRoomNumberFieldNumber = 2,
    kOrponFieldNumber = 1,
    kUserIdFieldNumber = 3,
  };
  // string room_number = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_room_number() ;
  const std::string& room_number() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_room_number(Arg_&& arg, Args_... args);
  std::string* mutable_room_number();
  PROTOBUF_NODISCARD std::string* release_room_number();
  void set_allocated_room_number(std::string* ptr);

  private:
  const std::string& _internal_room_number() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_room_number(
      const std::string& value);
  std::string* _internal_mutable_room_number();

  public:
  // int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_orpon() ;
  ::int64_t orpon() const;
  void set_orpon(::int64_t value);

  private:
  ::int64_t _internal_orpon() const;
  void _internal_set_orpon(::int64_t value);

  public:
  // int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];
  void clear_user_id() ;
  ::int32_t user_id() const;
  void set_user_id(::int32_t value);

  private:
  ::int32_t _internal_user_id() const;
  void _internal_set_user_id(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.RoomUser)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr room_number_;
    ::int64_t orpon_;
    ::int32_t user_id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};// -------------------------------------------------------------------

class GetRoomUserListRequest final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.GetRoomUserListRequest) */ {
 public:
  inline GetRoomUserListRequest() : GetRoomUserListRequest(nullptr) {}
  ~GetRoomUserListRequest() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GetRoomUserListRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GetRoomUserListRequest(const GetRoomUserListRequest& from);
  GetRoomUserListRequest(GetRoomUserListRequest&& from) noexcept
    : GetRoomUserListRequest() {
    *this = ::std::move(from);
  }

  inline GetRoomUserListRequest& operator=(const GetRoomUserListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetRoomUserListRequest& operator=(GetRoomUserListRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GetRoomUserListRequest& default_instance() {
    return *internal_default_instance();
  }
  enum PaginationCase {
    kPaging = 2,
    PAGINATION_NOT_SET = 0,
  };

  static inline const GetRoomUserListRequest* internal_default_instance() {
    return reinterpret_cast<const GetRoomUserListRequest*>(
               &_GetRoomUserListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(GetRoomUserListRequest& a, GetRoomUserListRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetRoomUserListRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetRoomUserListRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GetRoomUserListRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetRoomUserListRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetRoomUserListRequest& from);
  void MergeFrom(const GetRoomUserListRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GetRoomUserListRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.GetRoomUserListRequest";
  }
  protected:
  explicit GetRoomUserListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFilterFieldNumber = 1,
    kPagingFieldNumber = 2,
  };
  // .keyapis.access_control.v1.RoomUserFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_control::v1::RoomUserFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_control::v1::RoomUserFilter* release_filter();
  ::keyapis::access_control::v1::RoomUserFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_control::v1::RoomUserFilter* filter);
  private:
  const ::keyapis::access_control::v1::RoomUserFilter& _internal_filter() const;
  ::keyapis::access_control::v1::RoomUserFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_control::v1::RoomUserFilter* filter);
  ::keyapis::access_control::v1::RoomUserFilter* unsafe_arena_release_filter();
  // .keyapis.access_control.v1.RoomUserPaging paging = 2;
  bool has_paging() const;
  private:
  bool _internal_has_paging() const;

  public:
  void clear_paging() ;
  const ::keyapis::access_control::v1::RoomUserPaging& paging() const;
  PROTOBUF_NODISCARD ::keyapis::access_control::v1::RoomUserPaging* release_paging();
  ::keyapis::access_control::v1::RoomUserPaging* mutable_paging();
  void set_allocated_paging(::keyapis::access_control::v1::RoomUserPaging* paging);
  private:
  const ::keyapis::access_control::v1::RoomUserPaging& _internal_paging() const;
  ::keyapis::access_control::v1::RoomUserPaging* _internal_mutable_paging();
  public:
  void unsafe_arena_set_allocated_paging(
      ::keyapis::access_control::v1::RoomUserPaging* paging);
  ::keyapis::access_control::v1::RoomUserPaging* unsafe_arena_release_paging();
  void clear_pagination();
  PaginationCase pagination_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.GetRoomUserListRequest)
 private:
  class _Internal;
  void set_has_paging();

  inline bool has_pagination() const;
  inline void clear_has_pagination();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_control::v1::RoomUserFilter* filter_;
    union PaginationUnion {
      constexpr PaginationUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::access_control::v1::RoomUserPaging* paging_;
    } pagination_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};// -------------------------------------------------------------------

class GetRoomUserListResponse_Error final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.GetRoomUserListResponse.Error) */ {
 public:
  inline GetRoomUserListResponse_Error() : GetRoomUserListResponse_Error(nullptr) {}
  ~GetRoomUserListResponse_Error() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GetRoomUserListResponse_Error(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GetRoomUserListResponse_Error(const GetRoomUserListResponse_Error& from);
  GetRoomUserListResponse_Error(GetRoomUserListResponse_Error&& from) noexcept
    : GetRoomUserListResponse_Error() {
    *this = ::std::move(from);
  }

  inline GetRoomUserListResponse_Error& operator=(const GetRoomUserListResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetRoomUserListResponse_Error& operator=(GetRoomUserListResponse_Error&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GetRoomUserListResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kValidation = 1,
    REASON_NOT_SET = 0,
  };

  static inline const GetRoomUserListResponse_Error* internal_default_instance() {
    return reinterpret_cast<const GetRoomUserListResponse_Error*>(
               &_GetRoomUserListResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(GetRoomUserListResponse_Error& a, GetRoomUserListResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(GetRoomUserListResponse_Error* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetRoomUserListResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GetRoomUserListResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetRoomUserListResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetRoomUserListResponse_Error& from);
  void MergeFrom(const GetRoomUserListResponse_Error& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GetRoomUserListResponse_Error* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.GetRoomUserListResponse.Error";
  }
  protected:
  explicit GetRoomUserListResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kValidationFieldNumber = 1,
  };
  // .keyapis.access_control.v1.ValidationError validation = 1;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

  public:
  void clear_validation() ;
  const ::keyapis::access_control::v1::ValidationError& validation() const;
  PROTOBUF_NODISCARD ::keyapis::access_control::v1::ValidationError* release_validation();
  ::keyapis::access_control::v1::ValidationError* mutable_validation();
  void set_allocated_validation(::keyapis::access_control::v1::ValidationError* validation);
  private:
  const ::keyapis::access_control::v1::ValidationError& _internal_validation() const;
  ::keyapis::access_control::v1::ValidationError* _internal_mutable_validation();
  public:
  void unsafe_arena_set_allocated_validation(
      ::keyapis::access_control::v1::ValidationError* validation);
  ::keyapis::access_control::v1::ValidationError* unsafe_arena_release_validation();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.GetRoomUserListResponse.Error)
 private:
  class _Internal;
  void set_has_validation();

  inline bool has_reason() const;
  inline void clear_has_reason();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union ReasonUnion {
      constexpr ReasonUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::access_control::v1::ValidationError* validation_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};// -------------------------------------------------------------------

class GetRoomUserListResponse final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.GetRoomUserListResponse) */ {
 public:
  inline GetRoomUserListResponse() : GetRoomUserListResponse(nullptr) {}
  ~GetRoomUserListResponse() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GetRoomUserListResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GetRoomUserListResponse(const GetRoomUserListResponse& from);
  GetRoomUserListResponse(GetRoomUserListResponse&& from) noexcept
    : GetRoomUserListResponse() {
    *this = ::std::move(from);
  }

  inline GetRoomUserListResponse& operator=(const GetRoomUserListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetRoomUserListResponse& operator=(GetRoomUserListResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GetRoomUserListResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const GetRoomUserListResponse* internal_default_instance() {
    return reinterpret_cast<const GetRoomUserListResponse*>(
               &_GetRoomUserListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(GetRoomUserListResponse& a, GetRoomUserListResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetRoomUserListResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetRoomUserListResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GetRoomUserListResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetRoomUserListResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetRoomUserListResponse& from);
  void MergeFrom(const GetRoomUserListResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GetRoomUserListResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.GetRoomUserListResponse";
  }
  protected:
  explicit GetRoomUserListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef GetRoomUserListResponse_Error Error;

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 1,
    kErrorFieldNumber = 2,
  };
  // .keyapis.access_control.v1.RoomUser data = 1;
  bool has_data() const;
  private:
  bool _internal_has_data() const;

  public:
  void clear_data() ;
  const ::keyapis::access_control::v1::RoomUser& data() const;
  PROTOBUF_NODISCARD ::keyapis::access_control::v1::RoomUser* release_data();
  ::keyapis::access_control::v1::RoomUser* mutable_data();
  void set_allocated_data(::keyapis::access_control::v1::RoomUser* data);
  private:
  const ::keyapis::access_control::v1::RoomUser& _internal_data() const;
  ::keyapis::access_control::v1::RoomUser* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::keyapis::access_control::v1::RoomUser* data);
  ::keyapis::access_control::v1::RoomUser* unsafe_arena_release_data();
  // .keyapis.access_control.v1.GetRoomUserListResponse.Error error = 2;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

  public:
  void clear_error() ;
  const ::keyapis::access_control::v1::GetRoomUserListResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::access_control::v1::GetRoomUserListResponse_Error* release_error();
  ::keyapis::access_control::v1::GetRoomUserListResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::access_control::v1::GetRoomUserListResponse_Error* error);
  private:
  const ::keyapis::access_control::v1::GetRoomUserListResponse_Error& _internal_error() const;
  ::keyapis::access_control::v1::GetRoomUserListResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::access_control::v1::GetRoomUserListResponse_Error* error);
  ::keyapis::access_control::v1::GetRoomUserListResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.GetRoomUserListResponse)
 private:
  class _Internal;
  void set_has_data();
  void set_has_error();

  inline bool has_type() const;
  inline void clear_has_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union TypeUnion {
      constexpr TypeUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::access_control::v1::RoomUser* data_;
      ::keyapis::access_control::v1::GetRoomUserListResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};// -------------------------------------------------------------------

class GetRoomUserCountRequest final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.GetRoomUserCountRequest) */ {
 public:
  inline GetRoomUserCountRequest() : GetRoomUserCountRequest(nullptr) {}
  ~GetRoomUserCountRequest() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GetRoomUserCountRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GetRoomUserCountRequest(const GetRoomUserCountRequest& from);
  GetRoomUserCountRequest(GetRoomUserCountRequest&& from) noexcept
    : GetRoomUserCountRequest() {
    *this = ::std::move(from);
  }

  inline GetRoomUserCountRequest& operator=(const GetRoomUserCountRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetRoomUserCountRequest& operator=(GetRoomUserCountRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GetRoomUserCountRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetRoomUserCountRequest* internal_default_instance() {
    return reinterpret_cast<const GetRoomUserCountRequest*>(
               &_GetRoomUserCountRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(GetRoomUserCountRequest& a, GetRoomUserCountRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetRoomUserCountRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetRoomUserCountRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GetRoomUserCountRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetRoomUserCountRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetRoomUserCountRequest& from);
  void MergeFrom(const GetRoomUserCountRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GetRoomUserCountRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.GetRoomUserCountRequest";
  }
  protected:
  explicit GetRoomUserCountRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFilterFieldNumber = 1,
  };
  // .keyapis.access_control.v1.RoomUserFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_control::v1::RoomUserFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_control::v1::RoomUserFilter* release_filter();
  ::keyapis::access_control::v1::RoomUserFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_control::v1::RoomUserFilter* filter);
  private:
  const ::keyapis::access_control::v1::RoomUserFilter& _internal_filter() const;
  ::keyapis::access_control::v1::RoomUserFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_control::v1::RoomUserFilter* filter);
  ::keyapis::access_control::v1::RoomUserFilter* unsafe_arena_release_filter();
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.GetRoomUserCountRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_control::v1::RoomUserFilter* filter_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};// -------------------------------------------------------------------

class GetRoomUserCountResponse final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.GetRoomUserCountResponse) */ {
 public:
  inline GetRoomUserCountResponse() : GetRoomUserCountResponse(nullptr) {}
  ~GetRoomUserCountResponse() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR GetRoomUserCountResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  GetRoomUserCountResponse(const GetRoomUserCountResponse& from);
  GetRoomUserCountResponse(GetRoomUserCountResponse&& from) noexcept
    : GetRoomUserCountResponse() {
    *this = ::std::move(from);
  }

  inline GetRoomUserCountResponse& operator=(const GetRoomUserCountResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetRoomUserCountResponse& operator=(GetRoomUserCountResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const GetRoomUserCountResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    TYPE_NOT_SET = 0,
  };

  static inline const GetRoomUserCountResponse* internal_default_instance() {
    return reinterpret_cast<const GetRoomUserCountResponse*>(
               &_GetRoomUserCountResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(GetRoomUserCountResponse& a, GetRoomUserCountResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetRoomUserCountResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetRoomUserCountResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  GetRoomUserCountResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetRoomUserCountResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetRoomUserCountResponse& from);
  void MergeFrom(const GetRoomUserCountResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(GetRoomUserCountResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.GetRoomUserCountResponse";
  }
  protected:
  explicit GetRoomUserCountResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 1,
  };
  // int32 data = 1;
  bool has_data() const;
  void clear_data() ;
  ::int32_t data() const;
  void set_data(::int32_t value);

  private:
  ::int32_t _internal_data() const;
  void _internal_set_data(::int32_t value);

  public:
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.GetRoomUserCountResponse)
 private:
  class _Internal;
  void set_has_data();

  inline bool has_type() const;
  inline void clear_has_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union TypeUnion {
      constexpr TypeUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::int32_t data_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};// -------------------------------------------------------------------

class RoomUserFilter final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.RoomUserFilter) */ {
 public:
  inline RoomUserFilter() : RoomUserFilter(nullptr) {}
  ~RoomUserFilter() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR RoomUserFilter(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RoomUserFilter(const RoomUserFilter& from);
  RoomUserFilter(RoomUserFilter&& from) noexcept
    : RoomUserFilter() {
    *this = ::std::move(from);
  }

  inline RoomUserFilter& operator=(const RoomUserFilter& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoomUserFilter& operator=(RoomUserFilter&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const RoomUserFilter& default_instance() {
    return *internal_default_instance();
  }
  static inline const RoomUserFilter* internal_default_instance() {
    return reinterpret_cast<const RoomUserFilter*>(
               &_RoomUserFilter_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(RoomUserFilter& a, RoomUserFilter& b) {
    a.Swap(&b);
  }
  inline void Swap(RoomUserFilter* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RoomUserFilter* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  RoomUserFilter* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RoomUserFilter>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const RoomUserFilter& from);
  void MergeFrom(const RoomUserFilter& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(RoomUserFilter* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.RoomUserFilter";
  }
  protected:
  explicit RoomUserFilter(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOrponsFieldNumber = 1,
    kRoomNumbersFieldNumber = 2,
    kUserIdsFieldNumber = 3,
  };
  // repeated int64 orpons = 1;
  int orpons_size() const;
  private:
  int _internal_orpons_size() const;

  public:
  void clear_orpons() ;
  ::int64_t orpons(int index) const;
  void set_orpons(int index, ::int64_t value);
  void add_orpons(::int64_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>& orpons() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>* mutable_orpons();

  private:
  ::int64_t _internal_orpons(int index) const;
  void _internal_add_orpons(::int64_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>& _internal_orpons() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>* _internal_mutable_orpons();

  public:
  // repeated string room_numbers = 2;
  int room_numbers_size() const;
  private:
  int _internal_room_numbers_size() const;

  public:
  void clear_room_numbers() ;
  const std::string& room_numbers(int index) const;
  std::string* mutable_room_numbers(int index);
  void set_room_numbers(int index, const std::string& value);
  void set_room_numbers(int index, std::string&& value);
  void set_room_numbers(int index, const char* value);
  void set_room_numbers(int index, const char* value, std::size_t size);
  void set_room_numbers(int index, absl::string_view value);
  std::string* add_room_numbers();
  void add_room_numbers(const std::string& value);
  void add_room_numbers(std::string&& value);
  void add_room_numbers(const char* value);
  void add_room_numbers(const char* value, std::size_t size);
  void add_room_numbers(absl::string_view value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& room_numbers() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_room_numbers();

  private:
  const std::string& _internal_room_numbers(int index) const;
  std::string* _internal_add_room_numbers();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& _internal_room_numbers() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* _internal_mutable_room_numbers();

  public:
  // repeated int32 user_ids = 3;
  int user_ids_size() const;
  private:
  int _internal_user_ids_size() const;

  public:
  void clear_user_ids() ;
  ::int32_t user_ids(int index) const;
  void set_user_ids(int index, ::int32_t value);
  void add_user_ids(::int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>& user_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>* mutable_user_ids();

  private:
  ::int32_t _internal_user_ids(int index) const;
  void _internal_add_user_ids(::int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>& _internal_user_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>* _internal_mutable_user_ids();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.RoomUserFilter)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t> orpons_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _orpons_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> room_numbers_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t> user_ids_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _user_ids_cached_byte_size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};// -------------------------------------------------------------------

class RoomUserPaging final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.access_control.v1.RoomUserPaging) */ {
 public:
  inline RoomUserPaging() : RoomUserPaging(nullptr) {}
  ~RoomUserPaging() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR RoomUserPaging(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RoomUserPaging(const RoomUserPaging& from);
  RoomUserPaging(RoomUserPaging&& from) noexcept
    : RoomUserPaging() {
    *this = ::std::move(from);
  }

  inline RoomUserPaging& operator=(const RoomUserPaging& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoomUserPaging& operator=(RoomUserPaging&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const RoomUserPaging& default_instance() {
    return *internal_default_instance();
  }
  static inline const RoomUserPaging* internal_default_instance() {
    return reinterpret_cast<const RoomUserPaging*>(
               &_RoomUserPaging_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(RoomUserPaging& a, RoomUserPaging& b) {
    a.Swap(&b);
  }
  inline void Swap(RoomUserPaging* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RoomUserPaging* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  RoomUserPaging* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RoomUserPaging>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const RoomUserPaging& from);
  void MergeFrom(const RoomUserPaging& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(RoomUserPaging* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.access_control.v1.RoomUserPaging";
  }
  protected:
  explicit RoomUserPaging(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  using OrderByType = RoomUserPaging_OrderByType;
  static constexpr OrderByType ORDER_BY_TYPE_UNKNOWN = RoomUserPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN;
  static constexpr OrderByType USER_ID = RoomUserPaging_OrderByType_USER_ID;
  static constexpr OrderByType ORPON_THEN_NUMBER = RoomUserPaging_OrderByType_ORPON_THEN_NUMBER;
  static inline bool OrderByType_IsValid(int value) {
    return RoomUserPaging_OrderByType_IsValid(value);
  }
  static constexpr OrderByType OrderByType_MIN = RoomUserPaging_OrderByType_OrderByType_MIN;
  static constexpr OrderByType OrderByType_MAX = RoomUserPaging_OrderByType_OrderByType_MAX;
  static constexpr int OrderByType_ARRAYSIZE = RoomUserPaging_OrderByType_OrderByType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& OrderByType_Name(T value) {
    return RoomUserPaging_OrderByType_Name(value);
  }
  static inline bool OrderByType_Parse(absl::string_view name, OrderByType* value) {
    return RoomUserPaging_OrderByType_Parse(name, value);
  }

  using DirectionType = RoomUserPaging_DirectionType;
  static constexpr DirectionType DIRECTION_TYPE_UNKNOWN = RoomUserPaging_DirectionType_DIRECTION_TYPE_UNKNOWN;
  static constexpr DirectionType DESC = RoomUserPaging_DirectionType_DESC;
  static constexpr DirectionType ASC = RoomUserPaging_DirectionType_ASC;
  static inline bool DirectionType_IsValid(int value) {
    return RoomUserPaging_DirectionType_IsValid(value);
  }
  static constexpr DirectionType DirectionType_MIN = RoomUserPaging_DirectionType_DirectionType_MIN;
  static constexpr DirectionType DirectionType_MAX = RoomUserPaging_DirectionType_DirectionType_MAX;
  static constexpr int DirectionType_ARRAYSIZE = RoomUserPaging_DirectionType_DirectionType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& DirectionType_Name(T value) {
    return RoomUserPaging_DirectionType_Name(value);
  }
  static inline bool DirectionType_Parse(absl::string_view name, DirectionType* value) {
    return RoomUserPaging_DirectionType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kOrderByTypeFieldNumber = 1,
    kDirectionTypeFieldNumber = 2,
    kLimitFieldNumber = 3,
    kOffsetFieldNumber = 4,
  };
  // .keyapis.access_control.v1.RoomUserPaging.OrderByType order_by_type = 1;
  void clear_order_by_type() ;
  ::keyapis::access_control::v1::RoomUserPaging_OrderByType order_by_type() const;
  void set_order_by_type(::keyapis::access_control::v1::RoomUserPaging_OrderByType value);

  private:
  ::keyapis::access_control::v1::RoomUserPaging_OrderByType _internal_order_by_type() const;
  void _internal_set_order_by_type(::keyapis::access_control::v1::RoomUserPaging_OrderByType value);

  public:
  // .keyapis.access_control.v1.RoomUserPaging.DirectionType direction_type = 2;
  void clear_direction_type() ;
  ::keyapis::access_control::v1::RoomUserPaging_DirectionType direction_type() const;
  void set_direction_type(::keyapis::access_control::v1::RoomUserPaging_DirectionType value);

  private:
  ::keyapis::access_control::v1::RoomUserPaging_DirectionType _internal_direction_type() const;
  void _internal_set_direction_type(::keyapis::access_control::v1::RoomUserPaging_DirectionType value);

  public:
  // int32 limit = 3;
  void clear_limit() ;
  ::int32_t limit() const;
  void set_limit(::int32_t value);

  private:
  ::int32_t _internal_limit() const;
  void _internal_set_limit(::int32_t value);

  public:
  // int32 offset = 4;
  void clear_offset() ;
  ::int32_t offset() const;
  void set_offset(::int32_t value);

  private:
  ::int32_t _internal_offset() const;
  void _internal_set_offset(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_control.v1.RoomUserPaging)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int order_by_type_;
    int direction_type_;
    ::int32_t limit_;
    ::int32_t offset_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto;
};

// ===================================================================




// ===================================================================


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// RoomUser

// int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
inline void RoomUser::clear_orpon() {
  _impl_.orpon_ = ::int64_t{0};
}
inline ::int64_t RoomUser::orpon() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUser.orpon)
  return _internal_orpon();
}
inline void RoomUser::set_orpon(::int64_t value) {
  _internal_set_orpon(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUser.orpon)
}
inline ::int64_t RoomUser::_internal_orpon() const {
  return _impl_.orpon_;
}
inline void RoomUser::_internal_set_orpon(::int64_t value) {
  ;
  _impl_.orpon_ = value;
}

// string room_number = 2 [(.google.api.field_behavior) = REQUIRED];
inline void RoomUser::clear_room_number() {
  _impl_.room_number_.ClearToEmpty();
}
inline const std::string& RoomUser::room_number() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUser.room_number)
  return _internal_room_number();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void RoomUser::set_room_number(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.room_number_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUser.room_number)
}
inline std::string* RoomUser::mutable_room_number() {
  std::string* _s = _internal_mutable_room_number();
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.RoomUser.room_number)
  return _s;
}
inline const std::string& RoomUser::_internal_room_number() const {
  return _impl_.room_number_.Get();
}
inline void RoomUser::_internal_set_room_number(const std::string& value) {
  ;


  _impl_.room_number_.Set(value, GetArenaForAllocation());
}
inline std::string* RoomUser::_internal_mutable_room_number() {
  ;
  return _impl_.room_number_.Mutable( GetArenaForAllocation());
}
inline std::string* RoomUser::release_room_number() {
  // @@protoc_insertion_point(field_release:keyapis.access_control.v1.RoomUser.room_number)
  return _impl_.room_number_.Release();
}
inline void RoomUser::set_allocated_room_number(std::string* value) {
  _impl_.room_number_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.room_number_.IsDefault()) {
          _impl_.room_number_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_control.v1.RoomUser.room_number)
}

// int32 user_id = 3 [(.google.api.field_behavior) = REQUIRED];
inline void RoomUser::clear_user_id() {
  _impl_.user_id_ = 0;
}
inline ::int32_t RoomUser::user_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUser.user_id)
  return _internal_user_id();
}
inline void RoomUser::set_user_id(::int32_t value) {
  _internal_set_user_id(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUser.user_id)
}
inline ::int32_t RoomUser::_internal_user_id() const {
  return _impl_.user_id_;
}
inline void RoomUser::_internal_set_user_id(::int32_t value) {
  ;
  _impl_.user_id_ = value;
}

// -------------------------------------------------------------------

// GetRoomUserListRequest

// .keyapis.access_control.v1.RoomUserFilter filter = 1;
inline bool GetRoomUserListRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetRoomUserListRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_control::v1::RoomUserFilter& GetRoomUserListRequest::_internal_filter() const {
  const ::keyapis::access_control::v1::RoomUserFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_control::v1::RoomUserFilter&>(
      ::keyapis::access_control::v1::_RoomUserFilter_default_instance_);
}
inline const ::keyapis::access_control::v1::RoomUserFilter& GetRoomUserListRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.GetRoomUserListRequest.filter)
  return _internal_filter();
}
inline void GetRoomUserListRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_control::v1::RoomUserFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_control.v1.GetRoomUserListRequest.filter)
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserListRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_control::v1::RoomUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserListRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_control.v1.GetRoomUserListRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_control::v1::RoomUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserListRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_control::v1::RoomUserFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserListRequest::mutable_filter() {
  ::keyapis::access_control::v1::RoomUserFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.GetRoomUserListRequest.filter)
  return _msg;
}
inline void GetRoomUserListRequest::set_allocated_filter(::keyapis::access_control::v1::RoomUserFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_control.v1.GetRoomUserListRequest.filter)
}

// .keyapis.access_control.v1.RoomUserPaging paging = 2;
inline bool GetRoomUserListRequest::has_paging() const {
  return pagination_case() == kPaging;
}
inline bool GetRoomUserListRequest::_internal_has_paging() const {
  return pagination_case() == kPaging;
}
inline void GetRoomUserListRequest::set_has_paging() {
  _impl_._oneof_case_[0] = kPaging;
}
inline void GetRoomUserListRequest::clear_paging() {
  if (pagination_case() == kPaging) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.pagination_.paging_;
    }
    clear_has_pagination();
  }
}
inline ::keyapis::access_control::v1::RoomUserPaging* GetRoomUserListRequest::release_paging() {
  // @@protoc_insertion_point(field_release:keyapis.access_control.v1.GetRoomUserListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_control::v1::RoomUserPaging* temp = _impl_.pagination_.paging_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_control::v1::RoomUserPaging& GetRoomUserListRequest::_internal_paging() const {
  return pagination_case() == kPaging
      ? *_impl_.pagination_.paging_
      : reinterpret_cast<::keyapis::access_control::v1::RoomUserPaging&>(::keyapis::access_control::v1::_RoomUserPaging_default_instance_);
}
inline const ::keyapis::access_control::v1::RoomUserPaging& GetRoomUserListRequest::paging() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.GetRoomUserListRequest.paging)
  return _internal_paging();
}
inline ::keyapis::access_control::v1::RoomUserPaging* GetRoomUserListRequest::unsafe_arena_release_paging() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_control.v1.GetRoomUserListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_control::v1::RoomUserPaging* temp = _impl_.pagination_.paging_;
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetRoomUserListRequest::unsafe_arena_set_allocated_paging(::keyapis::access_control::v1::RoomUserPaging* paging) {
  clear_pagination();
  if (paging) {
    set_has_paging();
    _impl_.pagination_.paging_ = paging;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_control.v1.GetRoomUserListRequest.paging)
}
inline ::keyapis::access_control::v1::RoomUserPaging* GetRoomUserListRequest::_internal_mutable_paging() {
  if (pagination_case() != kPaging) {
    clear_pagination();
    set_has_paging();
    _impl_.pagination_.paging_ = CreateMaybeMessage< ::keyapis::access_control::v1::RoomUserPaging >(GetArenaForAllocation());
  }
  return _impl_.pagination_.paging_;
}
inline ::keyapis::access_control::v1::RoomUserPaging* GetRoomUserListRequest::mutable_paging() {
  ::keyapis::access_control::v1::RoomUserPaging* _msg = _internal_mutable_paging();
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.GetRoomUserListRequest.paging)
  return _msg;
}

inline bool GetRoomUserListRequest::has_pagination() const {
  return pagination_case() != PAGINATION_NOT_SET;
}
inline void GetRoomUserListRequest::clear_has_pagination() {
  _impl_._oneof_case_[0] = PAGINATION_NOT_SET;
}
inline GetRoomUserListRequest::PaginationCase GetRoomUserListRequest::pagination_case() const {
  return GetRoomUserListRequest::PaginationCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetRoomUserListResponse_Error

// .keyapis.access_control.v1.ValidationError validation = 1;
inline bool GetRoomUserListResponse_Error::has_validation() const {
  return reason_case() == kValidation;
}
inline bool GetRoomUserListResponse_Error::_internal_has_validation() const {
  return reason_case() == kValidation;
}
inline void GetRoomUserListResponse_Error::set_has_validation() {
  _impl_._oneof_case_[0] = kValidation;
}
inline ::keyapis::access_control::v1::ValidationError* GetRoomUserListResponse_Error::release_validation() {
  // @@protoc_insertion_point(field_release:keyapis.access_control.v1.GetRoomUserListResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_control::v1::ValidationError* temp = _impl_.reason_.validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_control::v1::ValidationError& GetRoomUserListResponse_Error::_internal_validation() const {
  return reason_case() == kValidation
      ? *_impl_.reason_.validation_
      : reinterpret_cast<::keyapis::access_control::v1::ValidationError&>(::keyapis::access_control::v1::_ValidationError_default_instance_);
}
inline const ::keyapis::access_control::v1::ValidationError& GetRoomUserListResponse_Error::validation() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.GetRoomUserListResponse.Error.validation)
  return _internal_validation();
}
inline ::keyapis::access_control::v1::ValidationError* GetRoomUserListResponse_Error::unsafe_arena_release_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_control.v1.GetRoomUserListResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_control::v1::ValidationError* temp = _impl_.reason_.validation_;
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetRoomUserListResponse_Error::unsafe_arena_set_allocated_validation(::keyapis::access_control::v1::ValidationError* validation) {
  clear_reason();
  if (validation) {
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_control.v1.GetRoomUserListResponse.Error.validation)
}
inline ::keyapis::access_control::v1::ValidationError* GetRoomUserListResponse_Error::_internal_mutable_validation() {
  if (reason_case() != kValidation) {
    clear_reason();
    set_has_validation();
    _impl_.reason_.validation_ = CreateMaybeMessage< ::keyapis::access_control::v1::ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.validation_;
}
inline ::keyapis::access_control::v1::ValidationError* GetRoomUserListResponse_Error::mutable_validation() {
  ::keyapis::access_control::v1::ValidationError* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.GetRoomUserListResponse.Error.validation)
  return _msg;
}

inline bool GetRoomUserListResponse_Error::has_reason() const {
  return reason_case() != REASON_NOT_SET;
}
inline void GetRoomUserListResponse_Error::clear_has_reason() {
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}
inline GetRoomUserListResponse_Error::ReasonCase GetRoomUserListResponse_Error::reason_case() const {
  return GetRoomUserListResponse_Error::ReasonCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetRoomUserListResponse

// .keyapis.access_control.v1.RoomUser data = 1;
inline bool GetRoomUserListResponse::has_data() const {
  return type_case() == kData;
}
inline bool GetRoomUserListResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void GetRoomUserListResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetRoomUserListResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_control::v1::RoomUser* GetRoomUserListResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_control.v1.GetRoomUserListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_control::v1::RoomUser* temp = _impl_.type_.data_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_control::v1::RoomUser& GetRoomUserListResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::access_control::v1::RoomUser&>(::keyapis::access_control::v1::_RoomUser_default_instance_);
}
inline const ::keyapis::access_control::v1::RoomUser& GetRoomUserListResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.GetRoomUserListResponse.data)
  return _internal_data();
}
inline ::keyapis::access_control::v1::RoomUser* GetRoomUserListResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_control.v1.GetRoomUserListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_control::v1::RoomUser* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetRoomUserListResponse::unsafe_arena_set_allocated_data(::keyapis::access_control::v1::RoomUser* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_control.v1.GetRoomUserListResponse.data)
}
inline ::keyapis::access_control::v1::RoomUser* GetRoomUserListResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::access_control::v1::RoomUser >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::access_control::v1::RoomUser* GetRoomUserListResponse::mutable_data() {
  ::keyapis::access_control::v1::RoomUser* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.GetRoomUserListResponse.data)
  return _msg;
}

// .keyapis.access_control.v1.GetRoomUserListResponse.Error error = 2;
inline bool GetRoomUserListResponse::has_error() const {
  return type_case() == kError;
}
inline bool GetRoomUserListResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void GetRoomUserListResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void GetRoomUserListResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_control::v1::GetRoomUserListResponse_Error* GetRoomUserListResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_control.v1.GetRoomUserListResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_control::v1::GetRoomUserListResponse_Error* temp = _impl_.type_.error_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_control::v1::GetRoomUserListResponse_Error& GetRoomUserListResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::access_control::v1::GetRoomUserListResponse_Error&>(::keyapis::access_control::v1::_GetRoomUserListResponse_Error_default_instance_);
}
inline const ::keyapis::access_control::v1::GetRoomUserListResponse_Error& GetRoomUserListResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.GetRoomUserListResponse.error)
  return _internal_error();
}
inline ::keyapis::access_control::v1::GetRoomUserListResponse_Error* GetRoomUserListResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_control.v1.GetRoomUserListResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_control::v1::GetRoomUserListResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetRoomUserListResponse::unsafe_arena_set_allocated_error(::keyapis::access_control::v1::GetRoomUserListResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_control.v1.GetRoomUserListResponse.error)
}
inline ::keyapis::access_control::v1::GetRoomUserListResponse_Error* GetRoomUserListResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::access_control::v1::GetRoomUserListResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::access_control::v1::GetRoomUserListResponse_Error* GetRoomUserListResponse::mutable_error() {
  ::keyapis::access_control::v1::GetRoomUserListResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.GetRoomUserListResponse.error)
  return _msg;
}

inline bool GetRoomUserListResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetRoomUserListResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetRoomUserListResponse::TypeCase GetRoomUserListResponse::type_case() const {
  return GetRoomUserListResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetRoomUserCountRequest

// .keyapis.access_control.v1.RoomUserFilter filter = 1;
inline bool GetRoomUserCountRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetRoomUserCountRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_control::v1::RoomUserFilter& GetRoomUserCountRequest::_internal_filter() const {
  const ::keyapis::access_control::v1::RoomUserFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_control::v1::RoomUserFilter&>(
      ::keyapis::access_control::v1::_RoomUserFilter_default_instance_);
}
inline const ::keyapis::access_control::v1::RoomUserFilter& GetRoomUserCountRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.GetRoomUserCountRequest.filter)
  return _internal_filter();
}
inline void GetRoomUserCountRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_control::v1::RoomUserFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_control.v1.GetRoomUserCountRequest.filter)
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserCountRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_control::v1::RoomUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserCountRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_control.v1.GetRoomUserCountRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_control::v1::RoomUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserCountRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_control::v1::RoomUserFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_control::v1::RoomUserFilter* GetRoomUserCountRequest::mutable_filter() {
  ::keyapis::access_control::v1::RoomUserFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.GetRoomUserCountRequest.filter)
  return _msg;
}
inline void GetRoomUserCountRequest::set_allocated_filter(::keyapis::access_control::v1::RoomUserFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_control.v1.GetRoomUserCountRequest.filter)
}

// -------------------------------------------------------------------

// GetRoomUserCountResponse

// int32 data = 1;
inline bool GetRoomUserCountResponse::has_data() const {
  return type_case() == kData;
}
inline void GetRoomUserCountResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetRoomUserCountResponse::clear_data() {
  if (type_case() == kData) {
    _impl_.type_.data_ = 0;
    clear_has_type();
  }
}
inline ::int32_t GetRoomUserCountResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.GetRoomUserCountResponse.data)
  return _internal_data();
}
inline void GetRoomUserCountResponse::set_data(::int32_t value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.GetRoomUserCountResponse.data)
}
inline ::int32_t GetRoomUserCountResponse::_internal_data() const {
  if (type_case() == kData) {
    return _impl_.type_.data_;
  }
  return 0;
}
inline void GetRoomUserCountResponse::_internal_set_data(::int32_t value) {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
  }
  _impl_.type_.data_ = value;
}

inline bool GetRoomUserCountResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetRoomUserCountResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetRoomUserCountResponse::TypeCase GetRoomUserCountResponse::type_case() const {
  return GetRoomUserCountResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// RoomUserFilter

// repeated int64 orpons = 1;
inline int RoomUserFilter::_internal_orpons_size() const {
  return _impl_.orpons_.size();
}
inline int RoomUserFilter::orpons_size() const {
  return _internal_orpons_size();
}
inline void RoomUserFilter::clear_orpons() {
  _internal_mutable_orpons()->Clear();
}
inline ::int64_t RoomUserFilter::orpons(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUserFilter.orpons)
  return _internal_orpons(index);
}
inline void RoomUserFilter::set_orpons(int index, ::int64_t value) {
  _internal_mutable_orpons()->Set(index, value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserFilter.orpons)
}
inline void RoomUserFilter::add_orpons(::int64_t value) {
  _internal_add_orpons(value);
  // @@protoc_insertion_point(field_add:keyapis.access_control.v1.RoomUserFilter.orpons)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>& RoomUserFilter::orpons() const {
  // @@protoc_insertion_point(field_list:keyapis.access_control.v1.RoomUserFilter.orpons)
  return _internal_orpons();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>* RoomUserFilter::mutable_orpons() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_control.v1.RoomUserFilter.orpons)
  return _internal_mutable_orpons();
}

inline ::int64_t RoomUserFilter::_internal_orpons(int index) const {
  return _internal_orpons().Get(index);
}
inline void RoomUserFilter::_internal_add_orpons(::int64_t value) {
  _internal_mutable_orpons()->Add(value);
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>& RoomUserFilter::_internal_orpons() const {
  return _impl_.orpons_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int64_t>* RoomUserFilter::_internal_mutable_orpons() {
  return &_impl_.orpons_;
}

// repeated string room_numbers = 2;
inline int RoomUserFilter::_internal_room_numbers_size() const {
  return _impl_.room_numbers_.size();
}
inline int RoomUserFilter::room_numbers_size() const {
  return _internal_room_numbers_size();
}
inline void RoomUserFilter::clear_room_numbers() {
  _internal_mutable_room_numbers()->Clear();
}
inline std::string* RoomUserFilter::add_room_numbers() {
  std::string* _s = _internal_add_room_numbers();
  // @@protoc_insertion_point(field_add_mutable:keyapis.access_control.v1.RoomUserFilter.room_numbers)
  return _s;
}
inline const std::string& RoomUserFilter::room_numbers(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUserFilter.room_numbers)
  return _internal_room_numbers(index);
}
inline std::string* RoomUserFilter::mutable_room_numbers(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_control.v1.RoomUserFilter.room_numbers)
  return _internal_mutable_room_numbers()->Mutable(index);
}
inline void RoomUserFilter::set_room_numbers(int index, const std::string& value) {
  _internal_mutable_room_numbers()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::set_room_numbers(int index, std::string&& value) {
  _internal_mutable_room_numbers()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::set_room_numbers(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_room_numbers()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::set_room_numbers(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_room_numbers()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::set_room_numbers(int index, absl::string_view value) {
  _internal_mutable_room_numbers()->Mutable(index)->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_set_string_piece:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::add_room_numbers(const std::string& value) {
  _internal_mutable_room_numbers()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::add_room_numbers(std::string&& value) {
  _internal_mutable_room_numbers()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::add_room_numbers(const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_room_numbers()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::add_room_numbers(const char* value, std::size_t size) {
  _internal_mutable_room_numbers()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline void RoomUserFilter::add_room_numbers(absl::string_view value) {
  _internal_mutable_room_numbers()->Add()->assign(value.data(), value.size());
  // @@protoc_insertion_point(field_add_string_piece:keyapis.access_control.v1.RoomUserFilter.room_numbers)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
RoomUserFilter::room_numbers() const {
  // @@protoc_insertion_point(field_list:keyapis.access_control.v1.RoomUserFilter.room_numbers)
  return _internal_room_numbers();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* RoomUserFilter::mutable_room_numbers() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_control.v1.RoomUserFilter.room_numbers)
  return _internal_mutable_room_numbers();
}
inline const std::string& RoomUserFilter::_internal_room_numbers(int index) const {
  return _internal_room_numbers().Get(index);
}
inline std::string* RoomUserFilter::_internal_add_room_numbers() {
  return _internal_mutable_room_numbers()->Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
RoomUserFilter::_internal_room_numbers() const {
  return _impl_.room_numbers_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
RoomUserFilter::_internal_mutable_room_numbers() {
  return &_impl_.room_numbers_;
}

// repeated int32 user_ids = 3;
inline int RoomUserFilter::_internal_user_ids_size() const {
  return _impl_.user_ids_.size();
}
inline int RoomUserFilter::user_ids_size() const {
  return _internal_user_ids_size();
}
inline void RoomUserFilter::clear_user_ids() {
  _internal_mutable_user_ids()->Clear();
}
inline ::int32_t RoomUserFilter::user_ids(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUserFilter.user_ids)
  return _internal_user_ids(index);
}
inline void RoomUserFilter::set_user_ids(int index, ::int32_t value) {
  _internal_mutable_user_ids()->Set(index, value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserFilter.user_ids)
}
inline void RoomUserFilter::add_user_ids(::int32_t value) {
  _internal_add_user_ids(value);
  // @@protoc_insertion_point(field_add:keyapis.access_control.v1.RoomUserFilter.user_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>& RoomUserFilter::user_ids() const {
  // @@protoc_insertion_point(field_list:keyapis.access_control.v1.RoomUserFilter.user_ids)
  return _internal_user_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>* RoomUserFilter::mutable_user_ids() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_control.v1.RoomUserFilter.user_ids)
  return _internal_mutable_user_ids();
}

inline ::int32_t RoomUserFilter::_internal_user_ids(int index) const {
  return _internal_user_ids().Get(index);
}
inline void RoomUserFilter::_internal_add_user_ids(::int32_t value) {
  _internal_mutable_user_ids()->Add(value);
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>& RoomUserFilter::_internal_user_ids() const {
  return _impl_.user_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t>* RoomUserFilter::_internal_mutable_user_ids() {
  return &_impl_.user_ids_;
}

// -------------------------------------------------------------------

// RoomUserPaging

// .keyapis.access_control.v1.RoomUserPaging.OrderByType order_by_type = 1;
inline void RoomUserPaging::clear_order_by_type() {
  _impl_.order_by_type_ = 0;
}
inline ::keyapis::access_control::v1::RoomUserPaging_OrderByType RoomUserPaging::order_by_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUserPaging.order_by_type)
  return _internal_order_by_type();
}
inline void RoomUserPaging::set_order_by_type(::keyapis::access_control::v1::RoomUserPaging_OrderByType value) {
   _internal_set_order_by_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserPaging.order_by_type)
}
inline ::keyapis::access_control::v1::RoomUserPaging_OrderByType RoomUserPaging::_internal_order_by_type() const {
  return static_cast<::keyapis::access_control::v1::RoomUserPaging_OrderByType>(_impl_.order_by_type_);
}
inline void RoomUserPaging::_internal_set_order_by_type(::keyapis::access_control::v1::RoomUserPaging_OrderByType value) {
  ;
  _impl_.order_by_type_ = value;
}

// .keyapis.access_control.v1.RoomUserPaging.DirectionType direction_type = 2;
inline void RoomUserPaging::clear_direction_type() {
  _impl_.direction_type_ = 0;
}
inline ::keyapis::access_control::v1::RoomUserPaging_DirectionType RoomUserPaging::direction_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUserPaging.direction_type)
  return _internal_direction_type();
}
inline void RoomUserPaging::set_direction_type(::keyapis::access_control::v1::RoomUserPaging_DirectionType value) {
   _internal_set_direction_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserPaging.direction_type)
}
inline ::keyapis::access_control::v1::RoomUserPaging_DirectionType RoomUserPaging::_internal_direction_type() const {
  return static_cast<::keyapis::access_control::v1::RoomUserPaging_DirectionType>(_impl_.direction_type_);
}
inline void RoomUserPaging::_internal_set_direction_type(::keyapis::access_control::v1::RoomUserPaging_DirectionType value) {
  ;
  _impl_.direction_type_ = value;
}

// int32 limit = 3;
inline void RoomUserPaging::clear_limit() {
  _impl_.limit_ = 0;
}
inline ::int32_t RoomUserPaging::limit() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUserPaging.limit)
  return _internal_limit();
}
inline void RoomUserPaging::set_limit(::int32_t value) {
  _internal_set_limit(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserPaging.limit)
}
inline ::int32_t RoomUserPaging::_internal_limit() const {
  return _impl_.limit_;
}
inline void RoomUserPaging::_internal_set_limit(::int32_t value) {
  ;
  _impl_.limit_ = value;
}

// int32 offset = 4;
inline void RoomUserPaging::clear_offset() {
  _impl_.offset_ = 0;
}
inline ::int32_t RoomUserPaging::offset() const {
  // @@protoc_insertion_point(field_get:keyapis.access_control.v1.RoomUserPaging.offset)
  return _internal_offset();
}
inline void RoomUserPaging::set_offset(::int32_t value) {
  _internal_set_offset(value);
  // @@protoc_insertion_point(field_set:keyapis.access_control.v1.RoomUserPaging.offset)
}
inline ::int32_t RoomUserPaging::_internal_offset() const {
  return _impl_.offset_;
}
inline void RoomUserPaging::_internal_set_offset(::int32_t value) {
  ;
  _impl_.offset_ = value;
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace access_control
}  // namespace keyapis


PROTOBUF_NAMESPACE_OPEN

template <>
struct is_proto_enum<::keyapis::access_control::v1::RoomUserPaging_OrderByType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::access_control::v1::RoomUserPaging_DirectionType> : std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_keyapis_2faccess_5fcontrol_2fv1_2fkeyapis_5faccess_5fcontrol_5froom_5fuser_5fv1_2eproto_2epb_2eh
