// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: client/v3beta/dto/group/chatroom_dto.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto

#include <limits>
#include <string>


#include <herogoogle/protobuf/stubs/common.h>
#if GOOGLE_PROTOBUF_VERSION < 3018000
#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
#if 3018000 < 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


#include <herogoogle/protobuf/io/coded_stream.h>
#include <herogoogle/protobuf/arena.h>
#include <herogoogle/protobuf/arenastring.h>
#include <herogoogle/protobuf/generated_message_bases.h>
#include <herogoogle/protobuf/generated_message_table_driven.h>
#include <herogoogle/protobuf/generated_message_util.h>
#include <herogoogle/protobuf/metadata_lite.h>
#include <herogoogle/protobuf/generated_message_reflection.h>
#include <herogoogle/protobuf/message.h>
#include <herogoogle/protobuf/repeated_field.h>  // IWYU pragma: export
#include <herogoogle/protobuf/extension_set.h>  // IWYU pragma: export
#include <herogoogle/protobuf/map.h>  // IWYU pragma: export
#include <herogoogle/protobuf/map_entry.h>
#include <herogoogle/protobuf/map_field_inl.h>
#include <herogoogle/protobuf/unknown_field_set.h>
#include "client/v3beta/dto/group/model/group_model.pb.h"
#include "client/v3beta/dto/user/model/user_model.pb.h"
#include "client/v3beta/dto/shared/api.pb.h"
// @@protoc_insertion_point(includes)

#define PROTOBUF_INTERNAL_EXPORT_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto {
  static const ::herogoogle::protobuf::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::herogoogle::protobuf::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::herogoogle::protobuf::internal::ParseTable schema[21]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::herogoogle::protobuf::internal::FieldMetadata field_metadata[];
  static const ::herogoogle::protobuf::internal::SerializationTable serialization_table[];
  static const ::herogoogle::protobuf::uint32 offsets[];
};
extern const ::herogoogle::protobuf::internal::DescriptorTable descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace group {
class ChatRoomCreateOptions;
struct ChatRoomCreateOptionsDefaultTypeInternal;
extern ChatRoomCreateOptionsDefaultTypeInternal _ChatRoomCreateOptions_default_instance_;
class ChatRoomCreateOptions_ExtraEntry_DoNotUse;
struct ChatRoomCreateOptions_ExtraEntry_DoNotUseDefaultTypeInternal;
extern ChatRoomCreateOptions_ExtraEntry_DoNotUseDefaultTypeInternal _ChatRoomCreateOptions_ExtraEntry_DoNotUse_default_instance_;
class ChatRoomCreateRequest;
struct ChatRoomCreateRequestDefaultTypeInternal;
extern ChatRoomCreateRequestDefaultTypeInternal _ChatRoomCreateRequest_default_instance_;
class ChatRoomCreateResponse;
struct ChatRoomCreateResponseDefaultTypeInternal;
extern ChatRoomCreateResponseDefaultTypeInternal _ChatRoomCreateResponse_default_instance_;
class ChatRoomDismissRequest;
struct ChatRoomDismissRequestDefaultTypeInternal;
extern ChatRoomDismissRequestDefaultTypeInternal _ChatRoomDismissRequest_default_instance_;
class ChatRoomDismissResponse;
struct ChatRoomDismissResponseDefaultTypeInternal;
extern ChatRoomDismissResponseDefaultTypeInternal _ChatRoomDismissResponse_default_instance_;
class ChatRoomFindRequest;
struct ChatRoomFindRequestDefaultTypeInternal;
extern ChatRoomFindRequestDefaultTypeInternal _ChatRoomFindRequest_default_instance_;
class ChatRoomFindResponse;
struct ChatRoomFindResponseDefaultTypeInternal;
extern ChatRoomFindResponseDefaultTypeInternal _ChatRoomFindResponse_default_instance_;
class ChatRoomInviteRequest;
struct ChatRoomInviteRequestDefaultTypeInternal;
extern ChatRoomInviteRequestDefaultTypeInternal _ChatRoomInviteRequest_default_instance_;
class ChatRoomInviteResponse;
struct ChatRoomInviteResponseDefaultTypeInternal;
extern ChatRoomInviteResponseDefaultTypeInternal _ChatRoomInviteResponse_default_instance_;
class ChatRoomJoinAutoCreateRequest;
struct ChatRoomJoinAutoCreateRequestDefaultTypeInternal;
extern ChatRoomJoinAutoCreateRequestDefaultTypeInternal _ChatRoomJoinAutoCreateRequest_default_instance_;
class ChatRoomJoinAutoCreateResponse;
struct ChatRoomJoinAutoCreateResponseDefaultTypeInternal;
extern ChatRoomJoinAutoCreateResponseDefaultTypeInternal _ChatRoomJoinAutoCreateResponse_default_instance_;
class ChatRoomJoinRequest;
struct ChatRoomJoinRequestDefaultTypeInternal;
extern ChatRoomJoinRequestDefaultTypeInternal _ChatRoomJoinRequest_default_instance_;
class ChatRoomJoinResponse;
struct ChatRoomJoinResponseDefaultTypeInternal;
extern ChatRoomJoinResponseDefaultTypeInternal _ChatRoomJoinResponse_default_instance_;
class ChatRoomQuitRequest;
struct ChatRoomQuitRequestDefaultTypeInternal;
extern ChatRoomQuitRequestDefaultTypeInternal _ChatRoomQuitRequest_default_instance_;
class ChatRoomQuitResponse;
struct ChatRoomQuitResponseDefaultTypeInternal;
extern ChatRoomQuitResponseDefaultTypeInternal _ChatRoomQuitResponse_default_instance_;
class ChatRoomStatsDataRequest;
struct ChatRoomStatsDataRequestDefaultTypeInternal;
extern ChatRoomStatsDataRequestDefaultTypeInternal _ChatRoomStatsDataRequest_default_instance_;
class ChatRoomStatsDataResponse;
struct ChatRoomStatsDataResponseDefaultTypeInternal;
extern ChatRoomStatsDataResponseDefaultTypeInternal _ChatRoomStatsDataResponse_default_instance_;
class ChatRoomUserRemoveRequest;
struct ChatRoomUserRemoveRequestDefaultTypeInternal;
extern ChatRoomUserRemoveRequestDefaultTypeInternal _ChatRoomUserRemoveRequest_default_instance_;
class ChatRoomUserRemoveResponse;
struct ChatRoomUserRemoveResponseDefaultTypeInternal;
extern ChatRoomUserRemoveResponseDefaultTypeInternal _ChatRoomUserRemoveResponse_default_instance_;
class ChatRoomUserResponseItem;
struct ChatRoomUserResponseItemDefaultTypeInternal;
extern ChatRoomUserResponseItemDefaultTypeInternal _ChatRoomUserResponseItem_default_instance_;
}  // namespace group
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim
PROTOBUF_NAMESPACE_OPEN
template<> ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomCreateOptions>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomCreateRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomCreateRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomCreateResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomCreateResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomDismissRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomDismissRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomDismissResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomDismissResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomFindRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomFindRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomFindResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomFindResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomInviteRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomInviteRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomInviteResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomInviteResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomJoinRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomJoinRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomJoinResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomJoinResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomQuitRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomQuitRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomQuitResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomQuitResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace group {

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

class ChatRoomFindRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomFindRequest) */ {
 public:
  inline ChatRoomFindRequest() : ChatRoomFindRequest(nullptr) {}
  ~ChatRoomFindRequest() override;
  explicit constexpr ChatRoomFindRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomFindRequest& operator=(const ChatRoomFindRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomFindRequest& operator=(ChatRoomFindRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomFindRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomFindRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomFindRequest*>(
               &_ChatRoomFindRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(ChatRoomFindRequest& a, ChatRoomFindRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomFindRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomFindRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomFindRequest* New() const final {
    return new ChatRoomFindRequest();
  }

  ChatRoomFindRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomFindRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomFindRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomFindRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomFindRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomFindRequest";
  }
  protected:
  explicit ChatRoomFindRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
  };
  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomFindResponse final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomFindResponse) */ {
 public:
  inline ChatRoomFindResponse() : ChatRoomFindResponse(nullptr) {}
  ~ChatRoomFindResponse() override;
  explicit constexpr ChatRoomFindResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomFindResponse& operator=(const ChatRoomFindResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomFindResponse& operator=(ChatRoomFindResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomFindResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomFindResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomFindResponse*>(
               &_ChatRoomFindResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(ChatRoomFindResponse& a, ChatRoomFindResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomFindResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomFindResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomFindResponse* New() const final {
    return new ChatRoomFindResponse();
  }

  ChatRoomFindResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomFindResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomFindResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomFindResponse& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomFindResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomFindResponse";
  }
  protected:
  explicit ChatRoomFindResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kGroupFieldNumber = 1,
  };
  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  bool has_group() const;
  private:
  bool _internal_has_group() const;
  public:
  void clear_group();
  const ::heroim::client::v3beta::dto::group::model::Group& group() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::Group* release_group();
  ::heroim::client::v3beta::dto::group::model::Group* mutable_group();
  void set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group);
  private:
  const ::heroim::client::v3beta::dto::group::model::Group& _internal_group() const;
  ::heroim::client::v3beta::dto::group::model::Group* _internal_mutable_group();
  public:
  void unsafe_arena_set_allocated_group(
      ::heroim::client::v3beta::dto::group::model::Group* group);
  ::heroim::client::v3beta::dto::group::model::Group* unsafe_arena_release_group();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::group::model::Group* group_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomCreateRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomCreateRequest) */ {
 public:
  inline ChatRoomCreateRequest() : ChatRoomCreateRequest(nullptr) {}
  ~ChatRoomCreateRequest() override;
  explicit constexpr ChatRoomCreateRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomCreateRequest& operator=(const ChatRoomCreateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomCreateRequest& operator=(ChatRoomCreateRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomCreateRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomCreateRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomCreateRequest*>(
               &_ChatRoomCreateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(ChatRoomCreateRequest& a, ChatRoomCreateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomCreateRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomCreateRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomCreateRequest* New() const final {
    return new ChatRoomCreateRequest();
  }

  ChatRoomCreateRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomCreateRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomCreateRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomCreateRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomCreateRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomCreateRequest";
  }
  protected:
  explicit ChatRoomCreateRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
    kOptionsFieldNumber = 3,
  };
  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions options = 3;
  bool has_options() const;
  private:
  bool _internal_has_options() const;
  public:
  void clear_options();
  const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& options() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* release_options();
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* mutable_options();
  void set_allocated_options(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* options);
  private:
  const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& _internal_options() const;
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* _internal_mutable_options();
  public:
  void unsafe_arena_set_allocated_options(
      ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* options);
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* unsafe_arena_release_options();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* options_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomCreateOptions_ExtraEntry_DoNotUse : public ::herogoogle::protobuf::internal::MapEntry<ChatRoomCreateOptions_ExtraEntry_DoNotUse, 
    std::string, std::string,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING> {
public:
  typedef ::herogoogle::protobuf::internal::MapEntry<ChatRoomCreateOptions_ExtraEntry_DoNotUse, 
    std::string, std::string,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING> SuperType;
  ChatRoomCreateOptions_ExtraEntry_DoNotUse();
  explicit constexpr ChatRoomCreateOptions_ExtraEntry_DoNotUse(
      ::herogoogle::protobuf::internal::ConstantInitialized);
  explicit ChatRoomCreateOptions_ExtraEntry_DoNotUse(::herogoogle::protobuf::Arena* arena);
  void MergeFrom(const ChatRoomCreateOptions_ExtraEntry_DoNotUse& other);
  static const ChatRoomCreateOptions_ExtraEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const ChatRoomCreateOptions_ExtraEntry_DoNotUse*>(&_ChatRoomCreateOptions_ExtraEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::herogoogle::protobuf::internal::WireFormatLite::PARSE, "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.ExtraEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::herogoogle::protobuf::internal::WireFormatLite::PARSE, "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.ExtraEntry.value");
 }
  using ::herogoogle::protobuf::Message::MergeFrom;
  ::herogoogle::protobuf::Metadata GetMetadata() const final;
};

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

class ChatRoomCreateOptions final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomCreateOptions) */ {
 public:
  inline ChatRoomCreateOptions() : ChatRoomCreateOptions(nullptr) {}
  ~ChatRoomCreateOptions() override;
  explicit constexpr ChatRoomCreateOptions(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomCreateOptions& operator=(const ChatRoomCreateOptions& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomCreateOptions& operator=(ChatRoomCreateOptions&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomCreateOptions& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomCreateOptions* internal_default_instance() {
    return reinterpret_cast<const ChatRoomCreateOptions*>(
               &_ChatRoomCreateOptions_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(ChatRoomCreateOptions& a, ChatRoomCreateOptions& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomCreateOptions* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomCreateOptions* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomCreateOptions* New() const final {
    return new ChatRoomCreateOptions();
  }

  ChatRoomCreateOptions* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomCreateOptions>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomCreateOptions& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomCreateOptions& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomCreateOptions* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomCreateOptions";
  }
  protected:
  explicit ChatRoomCreateOptions(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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


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

  enum : int {
    kExtraFieldNumber = 4,
    kGroupTypeFieldNumber = 1,
    kTitleFieldNumber = 2,
    kIconUrlFieldNumber = 3,
  };
  // map<string, string> extra = 4;
  int extra_size() const;
  private:
  int _internal_extra_size() const;
  public:
  void clear_extra();
  private:
  const ::herogoogle::protobuf::Map< std::string, std::string >&
      _internal_extra() const;
  ::herogoogle::protobuf::Map< std::string, std::string >*
      _internal_mutable_extra();
  public:
  const ::herogoogle::protobuf::Map< std::string, std::string >&
      extra() const;
  ::herogoogle::protobuf::Map< std::string, std::string >*
      mutable_extra();

  // string groupType = 1;
  void clear_grouptype();
  const std::string& grouptype() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_grouptype(ArgT0&& arg0, ArgT... args);
  std::string* mutable_grouptype();
  PROTOBUF_MUST_USE_RESULT std::string* release_grouptype();
  void set_allocated_grouptype(std::string* grouptype);
  private:
  const std::string& _internal_grouptype() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_grouptype(const std::string& value);
  std::string* _internal_mutable_grouptype();
  public:

  // string title = 2;
  void clear_title();
  const std::string& title() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_title(ArgT0&& arg0, ArgT... args);
  std::string* mutable_title();
  PROTOBUF_MUST_USE_RESULT std::string* release_title();
  void set_allocated_title(std::string* title);
  private:
  const std::string& _internal_title() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_title(const std::string& value);
  std::string* _internal_mutable_title();
  public:

  // string iconUrl = 3;
  void clear_iconurl();
  const std::string& iconurl() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_iconurl(ArgT0&& arg0, ArgT... args);
  std::string* mutable_iconurl();
  PROTOBUF_MUST_USE_RESULT std::string* release_iconurl();
  void set_allocated_iconurl(std::string* iconurl);
  private:
  const std::string& _internal_iconurl() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_iconurl(const std::string& value);
  std::string* _internal_mutable_iconurl();
  public:

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::internal::MapField<
      ChatRoomCreateOptions_ExtraEntry_DoNotUse,
      std::string, std::string,
      ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING> extra_;
  ::herogoogle::protobuf::internal::ArenaStringPtr grouptype_;
  ::herogoogle::protobuf::internal::ArenaStringPtr title_;
  ::herogoogle::protobuf::internal::ArenaStringPtr iconurl_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomCreateResponse final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomCreateResponse) */ {
 public:
  inline ChatRoomCreateResponse() : ChatRoomCreateResponse(nullptr) {}
  ~ChatRoomCreateResponse() override;
  explicit constexpr ChatRoomCreateResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomCreateResponse& operator=(const ChatRoomCreateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomCreateResponse& operator=(ChatRoomCreateResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomCreateResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomCreateResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomCreateResponse*>(
               &_ChatRoomCreateResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(ChatRoomCreateResponse& a, ChatRoomCreateResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomCreateResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomCreateResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomCreateResponse* New() const final {
    return new ChatRoomCreateResponse();
  }

  ChatRoomCreateResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomCreateResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomCreateResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomCreateResponse& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomCreateResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomCreateResponse";
  }
  protected:
  explicit ChatRoomCreateResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kGroupFieldNumber = 1,
  };
  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  bool has_group() const;
  private:
  bool _internal_has_group() const;
  public:
  void clear_group();
  const ::heroim::client::v3beta::dto::group::model::Group& group() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::Group* release_group();
  ::heroim::client::v3beta::dto::group::model::Group* mutable_group();
  void set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group);
  private:
  const ::heroim::client::v3beta::dto::group::model::Group& _internal_group() const;
  ::heroim::client::v3beta::dto::group::model::Group* _internal_mutable_group();
  public:
  void unsafe_arena_set_allocated_group(
      ::heroim::client::v3beta::dto::group::model::Group* group);
  ::heroim::client::v3beta::dto::group::model::Group* unsafe_arena_release_group();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::group::model::Group* group_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomJoinRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomJoinRequest) */ {
 public:
  inline ChatRoomJoinRequest() : ChatRoomJoinRequest(nullptr) {}
  ~ChatRoomJoinRequest() override;
  explicit constexpr ChatRoomJoinRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomJoinRequest& operator=(const ChatRoomJoinRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomJoinRequest& operator=(ChatRoomJoinRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomJoinRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomJoinRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomJoinRequest*>(
               &_ChatRoomJoinRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(ChatRoomJoinRequest& a, ChatRoomJoinRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomJoinRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomJoinRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomJoinRequest* New() const final {
    return new ChatRoomJoinRequest();
  }

  ChatRoomJoinRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomJoinRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomJoinRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomJoinRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomJoinRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomJoinRequest";
  }
  protected:
  explicit ChatRoomJoinRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
  };
  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomJoinResponse final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomJoinResponse) */ {
 public:
  inline ChatRoomJoinResponse() : ChatRoomJoinResponse(nullptr) {}
  ~ChatRoomJoinResponse() override;
  explicit constexpr ChatRoomJoinResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomJoinResponse& operator=(const ChatRoomJoinResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomJoinResponse& operator=(ChatRoomJoinResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomJoinResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomJoinResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomJoinResponse*>(
               &_ChatRoomJoinResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(ChatRoomJoinResponse& a, ChatRoomJoinResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomJoinResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomJoinResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomJoinResponse* New() const final {
    return new ChatRoomJoinResponse();
  }

  ChatRoomJoinResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomJoinResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomJoinResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomJoinResponse& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomJoinResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomJoinResponse";
  }
  protected:
  explicit ChatRoomJoinResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kGroupFieldNumber = 1,
  };
  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  bool has_group() const;
  private:
  bool _internal_has_group() const;
  public:
  void clear_group();
  const ::heroim::client::v3beta::dto::group::model::Group& group() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::Group* release_group();
  ::heroim::client::v3beta::dto::group::model::Group* mutable_group();
  void set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group);
  private:
  const ::heroim::client::v3beta::dto::group::model::Group& _internal_group() const;
  ::heroim::client::v3beta::dto::group::model::Group* _internal_mutable_group();
  public:
  void unsafe_arena_set_allocated_group(
      ::heroim::client::v3beta::dto::group::model::Group* group);
  ::heroim::client::v3beta::dto::group::model::Group* unsafe_arena_release_group();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::group::model::Group* group_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomJoinAutoCreateRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest) */ {
 public:
  inline ChatRoomJoinAutoCreateRequest() : ChatRoomJoinAutoCreateRequest(nullptr) {}
  ~ChatRoomJoinAutoCreateRequest() override;
  explicit constexpr ChatRoomJoinAutoCreateRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomJoinAutoCreateRequest& operator=(const ChatRoomJoinAutoCreateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomJoinAutoCreateRequest& operator=(ChatRoomJoinAutoCreateRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomJoinAutoCreateRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomJoinAutoCreateRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomJoinAutoCreateRequest*>(
               &_ChatRoomJoinAutoCreateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(ChatRoomJoinAutoCreateRequest& a, ChatRoomJoinAutoCreateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomJoinAutoCreateRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomJoinAutoCreateRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomJoinAutoCreateRequest* New() const final {
    return new ChatRoomJoinAutoCreateRequest();
  }

  ChatRoomJoinAutoCreateRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomJoinAutoCreateRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomJoinAutoCreateRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomJoinAutoCreateRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomJoinAutoCreateRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest";
  }
  protected:
  explicit ChatRoomJoinAutoCreateRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
    kCreateOptionsFieldNumber = 3,
  };
  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions createOptions = 3;
  bool has_createoptions() const;
  private:
  bool _internal_has_createoptions() const;
  public:
  void clear_createoptions();
  const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& createoptions() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* release_createoptions();
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* mutable_createoptions();
  void set_allocated_createoptions(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* createoptions);
  private:
  const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& _internal_createoptions() const;
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* _internal_mutable_createoptions();
  public:
  void unsafe_arena_set_allocated_createoptions(
      ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* createoptions);
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* unsafe_arena_release_createoptions();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* createoptions_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomJoinAutoCreateResponse final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse) */ {
 public:
  inline ChatRoomJoinAutoCreateResponse() : ChatRoomJoinAutoCreateResponse(nullptr) {}
  ~ChatRoomJoinAutoCreateResponse() override;
  explicit constexpr ChatRoomJoinAutoCreateResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomJoinAutoCreateResponse& operator=(const ChatRoomJoinAutoCreateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomJoinAutoCreateResponse& operator=(ChatRoomJoinAutoCreateResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomJoinAutoCreateResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomJoinAutoCreateResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomJoinAutoCreateResponse*>(
               &_ChatRoomJoinAutoCreateResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(ChatRoomJoinAutoCreateResponse& a, ChatRoomJoinAutoCreateResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomJoinAutoCreateResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomJoinAutoCreateResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomJoinAutoCreateResponse* New() const final {
    return new ChatRoomJoinAutoCreateResponse();
  }

  ChatRoomJoinAutoCreateResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomJoinAutoCreateResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomJoinAutoCreateResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomJoinAutoCreateResponse& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomJoinAutoCreateResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse";
  }
  protected:
  explicit ChatRoomJoinAutoCreateResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kGroupFieldNumber = 1,
  };
  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  bool has_group() const;
  private:
  bool _internal_has_group() const;
  public:
  void clear_group();
  const ::heroim::client::v3beta::dto::group::model::Group& group() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::Group* release_group();
  ::heroim::client::v3beta::dto::group::model::Group* mutable_group();
  void set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group);
  private:
  const ::heroim::client::v3beta::dto::group::model::Group& _internal_group() const;
  ::heroim::client::v3beta::dto::group::model::Group* _internal_mutable_group();
  public:
  void unsafe_arena_set_allocated_group(
      ::heroim::client::v3beta::dto::group::model::Group* group);
  ::heroim::client::v3beta::dto::group::model::Group* unsafe_arena_release_group();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::group::model::Group* group_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomQuitRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomQuitRequest) */ {
 public:
  inline ChatRoomQuitRequest() : ChatRoomQuitRequest(nullptr) {}
  ~ChatRoomQuitRequest() override;
  explicit constexpr ChatRoomQuitRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomQuitRequest& operator=(const ChatRoomQuitRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomQuitRequest& operator=(ChatRoomQuitRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomQuitRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomQuitRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomQuitRequest*>(
               &_ChatRoomQuitRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(ChatRoomQuitRequest& a, ChatRoomQuitRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomQuitRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomQuitRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomQuitRequest* New() const final {
    return new ChatRoomQuitRequest();
  }

  ChatRoomQuitRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomQuitRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomQuitRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomQuitRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomQuitRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomQuitRequest";
  }
  protected:
  explicit ChatRoomQuitRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
  };
  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomQuitResponse final :
    public ::herogoogle::protobuf::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomQuitResponse) */ {
 public:
  inline ChatRoomQuitResponse() : ChatRoomQuitResponse(nullptr) {}
  explicit constexpr ChatRoomQuitResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomQuitResponse& operator=(const ChatRoomQuitResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomQuitResponse& operator=(ChatRoomQuitResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomQuitResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomQuitResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomQuitResponse*>(
               &_ChatRoomQuitResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(ChatRoomQuitResponse& a, ChatRoomQuitResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomQuitResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomQuitResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomQuitResponse* New() const final {
    return new ChatRoomQuitResponse();
  }

  ChatRoomQuitResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomQuitResponse>(arena);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const ChatRoomQuitResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const ChatRoomQuitResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeImpl(this, from);
  }
  public:
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomQuitResponse";
  }
  protected:
  explicit ChatRoomQuitResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomQuitResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomInviteRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomInviteRequest) */ {
 public:
  inline ChatRoomInviteRequest() : ChatRoomInviteRequest(nullptr) {}
  ~ChatRoomInviteRequest() override;
  explicit constexpr ChatRoomInviteRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomInviteRequest& operator=(const ChatRoomInviteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomInviteRequest& operator=(ChatRoomInviteRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomInviteRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomInviteRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomInviteRequest*>(
               &_ChatRoomInviteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(ChatRoomInviteRequest& a, ChatRoomInviteRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomInviteRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomInviteRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomInviteRequest* New() const final {
    return new ChatRoomInviteRequest();
  }

  ChatRoomInviteRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomInviteRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomInviteRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomInviteRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomInviteRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomInviteRequest";
  }
  protected:
  explicit ChatRoomInviteRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kUsersFieldNumber = 3,
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
  };
  // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
  int users_size() const;
  private:
  int _internal_users_size() const;
  public:
  void clear_users();
  ::heroim::client::v3beta::dto::user::model::UserKey* mutable_users(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >*
      mutable_users();
  private:
  const ::heroim::client::v3beta::dto::user::model::UserKey& _internal_users(int index) const;
  ::heroim::client::v3beta::dto::user::model::UserKey* _internal_add_users();
  public:
  const ::heroim::client::v3beta::dto::user::model::UserKey& users(int index) const;
  ::heroim::client::v3beta::dto::user::model::UserKey* add_users();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >&
      users() const;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey > users_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomUserResponseItem final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem) */ {
 public:
  inline ChatRoomUserResponseItem() : ChatRoomUserResponseItem(nullptr) {}
  ~ChatRoomUserResponseItem() override;
  explicit constexpr ChatRoomUserResponseItem(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomUserResponseItem& operator=(const ChatRoomUserResponseItem& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomUserResponseItem& operator=(ChatRoomUserResponseItem&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomUserResponseItem& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomUserResponseItem* internal_default_instance() {
    return reinterpret_cast<const ChatRoomUserResponseItem*>(
               &_ChatRoomUserResponseItem_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(ChatRoomUserResponseItem& a, ChatRoomUserResponseItem& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomUserResponseItem* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomUserResponseItem* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomUserResponseItem* New() const final {
    return new ChatRoomUserResponseItem();
  }

  ChatRoomUserResponseItem* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomUserResponseItem>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomUserResponseItem& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomUserResponseItem& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomUserResponseItem* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomUserResponseItem";
  }
  protected:
  explicit ChatRoomUserResponseItem(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kMsgFieldNumber = 2,
    kUserKeyFieldNumber = 1,
    kCodeFieldNumber = 3,
  };
  // string msg = 2;
  void clear_msg();
  const std::string& msg() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_msg(ArgT0&& arg0, ArgT... args);
  std::string* mutable_msg();
  PROTOBUF_MUST_USE_RESULT std::string* release_msg();
  void set_allocated_msg(std::string* msg);
  private:
  const std::string& _internal_msg() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_msg(const std::string& value);
  std::string* _internal_mutable_msg();
  public:

  // .heroim.client.v3beta.dto.user.model.UserKey userKey = 1;
  bool has_userkey() const;
  private:
  bool _internal_has_userkey() const;
  public:
  void clear_userkey();
  const ::heroim::client::v3beta::dto::user::model::UserKey& userkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::user::model::UserKey* release_userkey();
  ::heroim::client::v3beta::dto::user::model::UserKey* mutable_userkey();
  void set_allocated_userkey(::heroim::client::v3beta::dto::user::model::UserKey* userkey);
  private:
  const ::heroim::client::v3beta::dto::user::model::UserKey& _internal_userkey() const;
  ::heroim::client::v3beta::dto::user::model::UserKey* _internal_mutable_userkey();
  public:
  void unsafe_arena_set_allocated_userkey(
      ::heroim::client::v3beta::dto::user::model::UserKey* userkey);
  ::heroim::client::v3beta::dto::user::model::UserKey* unsafe_arena_release_userkey();

  // int32 code = 3;
  void clear_code();
  ::herogoogle::protobuf::int32 code() const;
  void set_code(::herogoogle::protobuf::int32 value);
  private:
  ::herogoogle::protobuf::int32 _internal_code() const;
  void _internal_set_code(::herogoogle::protobuf::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::internal::ArenaStringPtr msg_;
  ::heroim::client::v3beta::dto::user::model::UserKey* userkey_;
  ::herogoogle::protobuf::int32 code_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomInviteResponse final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomInviteResponse) */ {
 public:
  inline ChatRoomInviteResponse() : ChatRoomInviteResponse(nullptr) {}
  ~ChatRoomInviteResponse() override;
  explicit constexpr ChatRoomInviteResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomInviteResponse& operator=(const ChatRoomInviteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomInviteResponse& operator=(ChatRoomInviteResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomInviteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomInviteResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomInviteResponse*>(
               &_ChatRoomInviteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(ChatRoomInviteResponse& a, ChatRoomInviteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomInviteResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomInviteResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomInviteResponse* New() const final {
    return new ChatRoomInviteResponse();
  }

  ChatRoomInviteResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomInviteResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomInviteResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomInviteResponse& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomInviteResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomInviteResponse";
  }
  protected:
  explicit ChatRoomInviteResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kListFieldNumber = 1,
  };
  // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& list(int index) const;
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomUserRemoveRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest) */ {
 public:
  inline ChatRoomUserRemoveRequest() : ChatRoomUserRemoveRequest(nullptr) {}
  ~ChatRoomUserRemoveRequest() override;
  explicit constexpr ChatRoomUserRemoveRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomUserRemoveRequest& operator=(const ChatRoomUserRemoveRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomUserRemoveRequest& operator=(ChatRoomUserRemoveRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomUserRemoveRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomUserRemoveRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomUserRemoveRequest*>(
               &_ChatRoomUserRemoveRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  friend void swap(ChatRoomUserRemoveRequest& a, ChatRoomUserRemoveRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomUserRemoveRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomUserRemoveRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomUserRemoveRequest* New() const final {
    return new ChatRoomUserRemoveRequest();
  }

  ChatRoomUserRemoveRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomUserRemoveRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomUserRemoveRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomUserRemoveRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomUserRemoveRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest";
  }
  protected:
  explicit ChatRoomUserRemoveRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kUsersFieldNumber = 3,
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
  };
  // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
  int users_size() const;
  private:
  int _internal_users_size() const;
  public:
  void clear_users();
  ::heroim::client::v3beta::dto::user::model::UserKey* mutable_users(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >*
      mutable_users();
  private:
  const ::heroim::client::v3beta::dto::user::model::UserKey& _internal_users(int index) const;
  ::heroim::client::v3beta::dto::user::model::UserKey* _internal_add_users();
  public:
  const ::heroim::client::v3beta::dto::user::model::UserKey& users(int index) const;
  ::heroim::client::v3beta::dto::user::model::UserKey* add_users();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >&
      users() const;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey > users_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomUserRemoveResponse final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse) */ {
 public:
  inline ChatRoomUserRemoveResponse() : ChatRoomUserRemoveResponse(nullptr) {}
  ~ChatRoomUserRemoveResponse() override;
  explicit constexpr ChatRoomUserRemoveResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomUserRemoveResponse& operator=(const ChatRoomUserRemoveResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomUserRemoveResponse& operator=(ChatRoomUserRemoveResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomUserRemoveResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomUserRemoveResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomUserRemoveResponse*>(
               &_ChatRoomUserRemoveResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  friend void swap(ChatRoomUserRemoveResponse& a, ChatRoomUserRemoveResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomUserRemoveResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomUserRemoveResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomUserRemoveResponse* New() const final {
    return new ChatRoomUserRemoveResponse();
  }

  ChatRoomUserRemoveResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomUserRemoveResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomUserRemoveResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomUserRemoveResponse& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomUserRemoveResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse";
  }
  protected:
  explicit ChatRoomUserRemoveResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kListFieldNumber = 1,
  };
  // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& list(int index) const;
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomDismissRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomDismissRequest) */ {
 public:
  inline ChatRoomDismissRequest() : ChatRoomDismissRequest(nullptr) {}
  ~ChatRoomDismissRequest() override;
  explicit constexpr ChatRoomDismissRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomDismissRequest& operator=(const ChatRoomDismissRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomDismissRequest& operator=(ChatRoomDismissRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomDismissRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomDismissRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomDismissRequest*>(
               &_ChatRoomDismissRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

  friend void swap(ChatRoomDismissRequest& a, ChatRoomDismissRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomDismissRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomDismissRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomDismissRequest* New() const final {
    return new ChatRoomDismissRequest();
  }

  ChatRoomDismissRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomDismissRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomDismissRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomDismissRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomDismissRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomDismissRequest";
  }
  protected:
  explicit ChatRoomDismissRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
  };
  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomDismissResponse final :
    public ::herogoogle::protobuf::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomDismissResponse) */ {
 public:
  inline ChatRoomDismissResponse() : ChatRoomDismissResponse(nullptr) {}
  explicit constexpr ChatRoomDismissResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomDismissResponse& operator=(const ChatRoomDismissResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomDismissResponse& operator=(ChatRoomDismissResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomDismissResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomDismissResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomDismissResponse*>(
               &_ChatRoomDismissResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  friend void swap(ChatRoomDismissResponse& a, ChatRoomDismissResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomDismissResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomDismissResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomDismissResponse* New() const final {
    return new ChatRoomDismissResponse();
  }

  ChatRoomDismissResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomDismissResponse>(arena);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const ChatRoomDismissResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const ChatRoomDismissResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeImpl(this, from);
  }
  public:
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomDismissResponse";
  }
  protected:
  explicit ChatRoomDismissResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomDismissResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomStatsDataRequest final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest) */ {
 public:
  inline ChatRoomStatsDataRequest() : ChatRoomStatsDataRequest(nullptr) {}
  ~ChatRoomStatsDataRequest() override;
  explicit constexpr ChatRoomStatsDataRequest(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomStatsDataRequest& operator=(const ChatRoomStatsDataRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomStatsDataRequest& operator=(ChatRoomStatsDataRequest&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomStatsDataRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomStatsDataRequest* internal_default_instance() {
    return reinterpret_cast<const ChatRoomStatsDataRequest*>(
               &_ChatRoomStatsDataRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  friend void swap(ChatRoomStatsDataRequest& a, ChatRoomStatsDataRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomStatsDataRequest* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomStatsDataRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomStatsDataRequest* New() const final {
    return new ChatRoomStatsDataRequest();
  }

  ChatRoomStatsDataRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomStatsDataRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomStatsDataRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomStatsDataRequest& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomStatsDataRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest";
  }
  protected:
  explicit ChatRoomStatsDataRequest(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
    kGroupKeyFieldNumber = 2,
  };
  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::heroim::client::v3beta::dto::shared::APIRequest& base() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::shared::APIRequest* release_base();
  ::heroim::client::v3beta::dto::shared::APIRequest* mutable_base();
  void set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base);
  private:
  const ::heroim::client::v3beta::dto::shared::APIRequest& _internal_base() const;
  ::heroim::client::v3beta::dto::shared::APIRequest* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::heroim::client::v3beta::dto::shared::APIRequest* base);
  ::heroim::client::v3beta::dto::shared::APIRequest* unsafe_arena_release_base();

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  bool has_groupkey() const;
  private:
  bool _internal_has_groupkey() const;
  public:
  void clear_groupkey();
  const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupKey* release_groupkey();
  ::heroim::client::v3beta::dto::group::model::GroupKey* mutable_groupkey();
  void set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupKey& _internal_groupkey() const;
  ::heroim::client::v3beta::dto::group::model::GroupKey* _internal_mutable_groupkey();
  public:
  void unsafe_arena_set_allocated_groupkey(
      ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey);
  ::heroim::client::v3beta::dto::group::model::GroupKey* unsafe_arena_release_groupkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// -------------------------------------------------------------------

class ChatRoomStatsDataResponse final :
    public ::herogoogle::protobuf::Message /* @@protoc_insertion_point(class_definition:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse) */ {
 public:
  inline ChatRoomStatsDataResponse() : ChatRoomStatsDataResponse(nullptr) {}
  ~ChatRoomStatsDataResponse() override;
  explicit constexpr ChatRoomStatsDataResponse(::herogoogle::protobuf::internal::ConstantInitialized);

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

  inline ChatRoomStatsDataResponse& operator=(const ChatRoomStatsDataResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChatRoomStatsDataResponse& operator=(ChatRoomStatsDataResponse&& 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;
  }

  static const ::herogoogle::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::herogoogle::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::herogoogle::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ChatRoomStatsDataResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ChatRoomStatsDataResponse* internal_default_instance() {
    return reinterpret_cast<const ChatRoomStatsDataResponse*>(
               &_ChatRoomStatsDataResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  friend void swap(ChatRoomStatsDataResponse& a, ChatRoomStatsDataResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ChatRoomStatsDataResponse* other) {
    if (other == this) return;
    if (GetOwningArena() == other->GetOwningArena()) {
      InternalSwap(other);
    } else {
      ::herogoogle::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ChatRoomStatsDataResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  inline ChatRoomStatsDataResponse* New() const final {
    return new ChatRoomStatsDataResponse();
  }

  ChatRoomStatsDataResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ChatRoomStatsDataResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const ChatRoomStatsDataResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const ChatRoomStatsDataResponse& from);
  private:
  static void MergeImpl(::herogoogle::protobuf::Message* to, const ::herogoogle::protobuf::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

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

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChatRoomStatsDataResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse";
  }
  protected:
  explicit ChatRoomStatsDataResponse(::herogoogle::protobuf::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::herogoogle::protobuf::Arena* arena);
  public:

  static const ClassData _class_data_;
  const ::herogoogle::protobuf::Message::ClassData*GetClassData() const final;

  ::herogoogle::protobuf::Metadata GetMetadata() const final;

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

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

  enum : int {
    kStatsFieldNumber = 1,
  };
  // .heroim.client.v3beta.dto.group.model.GroupStats stats = 1;
  bool has_stats() const;
  private:
  bool _internal_has_stats() const;
  public:
  void clear_stats();
  const ::heroim::client::v3beta::dto::group::model::GroupStats& stats() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::GroupStats* release_stats();
  ::heroim::client::v3beta::dto::group::model::GroupStats* mutable_stats();
  void set_allocated_stats(::heroim::client::v3beta::dto::group::model::GroupStats* stats);
  private:
  const ::heroim::client::v3beta::dto::group::model::GroupStats& _internal_stats() const;
  ::heroim::client::v3beta::dto::group::model::GroupStats* _internal_mutable_stats();
  public:
  void unsafe_arena_set_allocated_stats(
      ::heroim::client::v3beta::dto::group::model::GroupStats* stats);
  ::heroim::client::v3beta::dto::group::model::GroupStats* unsafe_arena_release_stats();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::group::model::GroupStats* stats_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
};
// ===================================================================


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

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

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomFindRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomFindRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomFindRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomFindRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomFindRequest.base)
  return _internal_base();
}
inline void ChatRoomFindRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomFindRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomFindRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomFindRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomFindRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomFindRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomFindRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomFindRequest.base)
  return _msg;
}
inline void ChatRoomFindRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomFindRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomFindRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomFindRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomFindRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomFindRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomFindRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomFindRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomFindRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomFindRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomFindRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomFindRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomFindRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomFindRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomFindRequest.groupKey)
  return _msg;
}
inline void ChatRoomFindRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomFindRequest.groupKey)
}

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

// ChatRoomFindResponse

// .heroim.client.v3beta.dto.group.model.Group group = 1;
inline bool ChatRoomFindResponse::_internal_has_group() const {
  return this != internal_default_instance() && group_ != nullptr;
}
inline bool ChatRoomFindResponse::has_group() const {
  return _internal_has_group();
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomFindResponse::_internal_group() const {
  const ::heroim::client::v3beta::dto::group::model::Group* p = group_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::Group&>(
      ::heroim::client::v3beta::dto::group::model::_Group_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomFindResponse::group() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomFindResponse.group)
  return _internal_group();
}
inline void ChatRoomFindResponse::unsafe_arena_set_allocated_group(
    ::heroim::client::v3beta::dto::group::model::Group* group) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group_);
  }
  group_ = group;
  if (group) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomFindResponse.group)
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomFindResponse::release_group() {
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomFindResponse::unsafe_arena_release_group() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomFindResponse.group)
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomFindResponse::_internal_mutable_group() {
  
  if (group_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::Group>(GetArenaForAllocation());
    group_ = p;
  }
  return group_;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomFindResponse::mutable_group() {
  ::heroim::client::v3beta::dto::group::model::Group* _msg = _internal_mutable_group();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomFindResponse.group)
  return _msg;
}
inline void ChatRoomFindResponse::set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(group_);
  }
  if (group) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group));
    if (message_arena != submessage_arena) {
      group = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, group, submessage_arena);
    }
    
  } else {
    
  }
  group_ = group;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomFindResponse.group)
}

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

// ChatRoomCreateRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomCreateRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomCreateRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomCreateRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomCreateRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.base)
  return _internal_base();
}
inline void ChatRoomCreateRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomCreateRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomCreateRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomCreateRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomCreateRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.base)
  return _msg;
}
inline void ChatRoomCreateRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomCreateRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomCreateRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomCreateRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomCreateRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomCreateRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomCreateRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomCreateRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomCreateRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomCreateRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.groupKey)
  return _msg;
}
inline void ChatRoomCreateRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.groupKey)
}

// .heroim.client.v3beta.dto.group.ChatRoomCreateOptions options = 3;
inline bool ChatRoomCreateRequest::_internal_has_options() const {
  return this != internal_default_instance() && options_ != nullptr;
}
inline bool ChatRoomCreateRequest::has_options() const {
  return _internal_has_options();
}
inline void ChatRoomCreateRequest::clear_options() {
  if (GetArenaForAllocation() == nullptr && options_ != nullptr) {
    delete options_;
  }
  options_ = nullptr;
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& ChatRoomCreateRequest::_internal_options() const {
  const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* p = options_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions&>(
      ::heroim::client::v3beta::dto::group::_ChatRoomCreateOptions_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& ChatRoomCreateRequest::options() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.options)
  return _internal_options();
}
inline void ChatRoomCreateRequest::unsafe_arena_set_allocated_options(
    ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* options) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(options_);
  }
  options_ = options;
  if (options) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.options)
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomCreateRequest::release_options() {
  
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* temp = options_;
  options_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomCreateRequest::unsafe_arena_release_options() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.options)
  
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* temp = options_;
  options_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomCreateRequest::_internal_mutable_options() {
  
  if (options_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomCreateOptions>(GetArenaForAllocation());
    options_ = p;
  }
  return options_;
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomCreateRequest::mutable_options() {
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* _msg = _internal_mutable_options();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.options)
  return _msg;
}
inline void ChatRoomCreateRequest::set_allocated_options(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* options) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete options_;
  }
  if (options) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<::heroim::client::v3beta::dto::group::ChatRoomCreateOptions>::GetOwningArena(options);
    if (message_arena != submessage_arena) {
      options = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, options, submessage_arena);
    }
    
  } else {
    
  }
  options_ = options;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateRequest.options)
}

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

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

// ChatRoomCreateOptions

// string groupType = 1;
inline void ChatRoomCreateOptions::clear_grouptype() {
  grouptype_.ClearToEmpty();
}
inline const std::string& ChatRoomCreateOptions::grouptype() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.groupType)
  return _internal_grouptype();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void ChatRoomCreateOptions::set_grouptype(ArgT0&& arg0, ArgT... args) {
 
 grouptype_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.groupType)
}
inline std::string* ChatRoomCreateOptions::mutable_grouptype() {
  std::string* _s = _internal_mutable_grouptype();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.groupType)
  return _s;
}
inline const std::string& ChatRoomCreateOptions::_internal_grouptype() const {
  return grouptype_.Get();
}
inline void ChatRoomCreateOptions::_internal_set_grouptype(const std::string& value) {
  
  grouptype_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ChatRoomCreateOptions::_internal_mutable_grouptype() {
  
  return grouptype_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ChatRoomCreateOptions::release_grouptype() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.groupType)
  return grouptype_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void ChatRoomCreateOptions::set_allocated_grouptype(std::string* grouptype) {
  if (grouptype != nullptr) {
    
  } else {
    
  }
  grouptype_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), grouptype,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.groupType)
}

// string title = 2;
inline void ChatRoomCreateOptions::clear_title() {
  title_.ClearToEmpty();
}
inline const std::string& ChatRoomCreateOptions::title() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.title)
  return _internal_title();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void ChatRoomCreateOptions::set_title(ArgT0&& arg0, ArgT... args) {
 
 title_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.title)
}
inline std::string* ChatRoomCreateOptions::mutable_title() {
  std::string* _s = _internal_mutable_title();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.title)
  return _s;
}
inline const std::string& ChatRoomCreateOptions::_internal_title() const {
  return title_.Get();
}
inline void ChatRoomCreateOptions::_internal_set_title(const std::string& value) {
  
  title_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ChatRoomCreateOptions::_internal_mutable_title() {
  
  return title_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ChatRoomCreateOptions::release_title() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.title)
  return title_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void ChatRoomCreateOptions::set_allocated_title(std::string* title) {
  if (title != nullptr) {
    
  } else {
    
  }
  title_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), title,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.title)
}

// string iconUrl = 3;
inline void ChatRoomCreateOptions::clear_iconurl() {
  iconurl_.ClearToEmpty();
}
inline const std::string& ChatRoomCreateOptions::iconurl() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.iconUrl)
  return _internal_iconurl();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void ChatRoomCreateOptions::set_iconurl(ArgT0&& arg0, ArgT... args) {
 
 iconurl_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.iconUrl)
}
inline std::string* ChatRoomCreateOptions::mutable_iconurl() {
  std::string* _s = _internal_mutable_iconurl();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.iconUrl)
  return _s;
}
inline const std::string& ChatRoomCreateOptions::_internal_iconurl() const {
  return iconurl_.Get();
}
inline void ChatRoomCreateOptions::_internal_set_iconurl(const std::string& value) {
  
  iconurl_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ChatRoomCreateOptions::_internal_mutable_iconurl() {
  
  return iconurl_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ChatRoomCreateOptions::release_iconurl() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.iconUrl)
  return iconurl_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void ChatRoomCreateOptions::set_allocated_iconurl(std::string* iconurl) {
  if (iconurl != nullptr) {
    
  } else {
    
  }
  iconurl_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), iconurl,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.iconUrl)
}

// map<string, string> extra = 4;
inline int ChatRoomCreateOptions::_internal_extra_size() const {
  return extra_.size();
}
inline int ChatRoomCreateOptions::extra_size() const {
  return _internal_extra_size();
}
inline void ChatRoomCreateOptions::clear_extra() {
  extra_.Clear();
}
inline const ::herogoogle::protobuf::Map< std::string, std::string >&
ChatRoomCreateOptions::_internal_extra() const {
  return extra_.GetMap();
}
inline const ::herogoogle::protobuf::Map< std::string, std::string >&
ChatRoomCreateOptions::extra() const {
  // @@protoc_insertion_point(field_map:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.extra)
  return _internal_extra();
}
inline ::herogoogle::protobuf::Map< std::string, std::string >*
ChatRoomCreateOptions::_internal_mutable_extra() {
  return extra_.MutableMap();
}
inline ::herogoogle::protobuf::Map< std::string, std::string >*
ChatRoomCreateOptions::mutable_extra() {
  // @@protoc_insertion_point(field_mutable_map:heroim.client.v3beta.dto.group.ChatRoomCreateOptions.extra)
  return _internal_mutable_extra();
}

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

// ChatRoomCreateResponse

// .heroim.client.v3beta.dto.group.model.Group group = 1;
inline bool ChatRoomCreateResponse::_internal_has_group() const {
  return this != internal_default_instance() && group_ != nullptr;
}
inline bool ChatRoomCreateResponse::has_group() const {
  return _internal_has_group();
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomCreateResponse::_internal_group() const {
  const ::heroim::client::v3beta::dto::group::model::Group* p = group_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::Group&>(
      ::heroim::client::v3beta::dto::group::model::_Group_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomCreateResponse::group() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomCreateResponse.group)
  return _internal_group();
}
inline void ChatRoomCreateResponse::unsafe_arena_set_allocated_group(
    ::heroim::client::v3beta::dto::group::model::Group* group) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group_);
  }
  group_ = group;
  if (group) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateResponse.group)
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomCreateResponse::release_group() {
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomCreateResponse::unsafe_arena_release_group() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomCreateResponse.group)
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomCreateResponse::_internal_mutable_group() {
  
  if (group_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::Group>(GetArenaForAllocation());
    group_ = p;
  }
  return group_;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomCreateResponse::mutable_group() {
  ::heroim::client::v3beta::dto::group::model::Group* _msg = _internal_mutable_group();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomCreateResponse.group)
  return _msg;
}
inline void ChatRoomCreateResponse::set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(group_);
  }
  if (group) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group));
    if (message_arena != submessage_arena) {
      group = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, group, submessage_arena);
    }
    
  } else {
    
  }
  group_ = group;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomCreateResponse.group)
}

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

// ChatRoomJoinRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomJoinRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomJoinRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomJoinRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomJoinRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.base)
  return _internal_base();
}
inline void ChatRoomJoinRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.base)
  return _msg;
}
inline void ChatRoomJoinRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomJoinRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomJoinRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomJoinRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomJoinRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomJoinRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.groupKey)
  return _msg;
}
inline void ChatRoomJoinRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinRequest.groupKey)
}

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

// ChatRoomJoinResponse

// .heroim.client.v3beta.dto.group.model.Group group = 1;
inline bool ChatRoomJoinResponse::_internal_has_group() const {
  return this != internal_default_instance() && group_ != nullptr;
}
inline bool ChatRoomJoinResponse::has_group() const {
  return _internal_has_group();
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomJoinResponse::_internal_group() const {
  const ::heroim::client::v3beta::dto::group::model::Group* p = group_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::Group&>(
      ::heroim::client::v3beta::dto::group::model::_Group_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomJoinResponse::group() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomJoinResponse.group)
  return _internal_group();
}
inline void ChatRoomJoinResponse::unsafe_arena_set_allocated_group(
    ::heroim::client::v3beta::dto::group::model::Group* group) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group_);
  }
  group_ = group;
  if (group) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinResponse.group)
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinResponse::release_group() {
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinResponse::unsafe_arena_release_group() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomJoinResponse.group)
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinResponse::_internal_mutable_group() {
  
  if (group_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::Group>(GetArenaForAllocation());
    group_ = p;
  }
  return group_;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinResponse::mutable_group() {
  ::heroim::client::v3beta::dto::group::model::Group* _msg = _internal_mutable_group();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomJoinResponse.group)
  return _msg;
}
inline void ChatRoomJoinResponse::set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(group_);
  }
  if (group) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group));
    if (message_arena != submessage_arena) {
      group = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, group, submessage_arena);
    }
    
  } else {
    
  }
  group_ = group;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinResponse.group)
}

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

// ChatRoomJoinAutoCreateRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomJoinAutoCreateRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomJoinAutoCreateRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomJoinAutoCreateRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomJoinAutoCreateRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.base)
  return _internal_base();
}
inline void ChatRoomJoinAutoCreateRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinAutoCreateRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinAutoCreateRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinAutoCreateRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomJoinAutoCreateRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.base)
  return _msg;
}
inline void ChatRoomJoinAutoCreateRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomJoinAutoCreateRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomJoinAutoCreateRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomJoinAutoCreateRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomJoinAutoCreateRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomJoinAutoCreateRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinAutoCreateRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinAutoCreateRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinAutoCreateRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomJoinAutoCreateRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.groupKey)
  return _msg;
}
inline void ChatRoomJoinAutoCreateRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.groupKey)
}

// .heroim.client.v3beta.dto.group.ChatRoomCreateOptions createOptions = 3;
inline bool ChatRoomJoinAutoCreateRequest::_internal_has_createoptions() const {
  return this != internal_default_instance() && createoptions_ != nullptr;
}
inline bool ChatRoomJoinAutoCreateRequest::has_createoptions() const {
  return _internal_has_createoptions();
}
inline void ChatRoomJoinAutoCreateRequest::clear_createoptions() {
  if (GetArenaForAllocation() == nullptr && createoptions_ != nullptr) {
    delete createoptions_;
  }
  createoptions_ = nullptr;
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& ChatRoomJoinAutoCreateRequest::_internal_createoptions() const {
  const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* p = createoptions_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions&>(
      ::heroim::client::v3beta::dto::group::_ChatRoomCreateOptions_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& ChatRoomJoinAutoCreateRequest::createoptions() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.createOptions)
  return _internal_createoptions();
}
inline void ChatRoomJoinAutoCreateRequest::unsafe_arena_set_allocated_createoptions(
    ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* createoptions) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(createoptions_);
  }
  createoptions_ = createoptions;
  if (createoptions) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.createOptions)
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomJoinAutoCreateRequest::release_createoptions() {
  
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* temp = createoptions_;
  createoptions_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomJoinAutoCreateRequest::unsafe_arena_release_createoptions() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.createOptions)
  
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* temp = createoptions_;
  createoptions_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomJoinAutoCreateRequest::_internal_mutable_createoptions() {
  
  if (createoptions_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::ChatRoomCreateOptions>(GetArenaForAllocation());
    createoptions_ = p;
  }
  return createoptions_;
}
inline ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* ChatRoomJoinAutoCreateRequest::mutable_createoptions() {
  ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* _msg = _internal_mutable_createoptions();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.createOptions)
  return _msg;
}
inline void ChatRoomJoinAutoCreateRequest::set_allocated_createoptions(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* createoptions) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete createoptions_;
  }
  if (createoptions) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<::heroim::client::v3beta::dto::group::ChatRoomCreateOptions>::GetOwningArena(createoptions);
    if (message_arena != submessage_arena) {
      createoptions = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, createoptions, submessage_arena);
    }
    
  } else {
    
  }
  createoptions_ = createoptions;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest.createOptions)
}

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

// ChatRoomJoinAutoCreateResponse

// .heroim.client.v3beta.dto.group.model.Group group = 1;
inline bool ChatRoomJoinAutoCreateResponse::_internal_has_group() const {
  return this != internal_default_instance() && group_ != nullptr;
}
inline bool ChatRoomJoinAutoCreateResponse::has_group() const {
  return _internal_has_group();
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomJoinAutoCreateResponse::_internal_group() const {
  const ::heroim::client::v3beta::dto::group::model::Group* p = group_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::Group&>(
      ::heroim::client::v3beta::dto::group::model::_Group_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::Group& ChatRoomJoinAutoCreateResponse::group() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse.group)
  return _internal_group();
}
inline void ChatRoomJoinAutoCreateResponse::unsafe_arena_set_allocated_group(
    ::heroim::client::v3beta::dto::group::model::Group* group) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group_);
  }
  group_ = group;
  if (group) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse.group)
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinAutoCreateResponse::release_group() {
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinAutoCreateResponse::unsafe_arena_release_group() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse.group)
  
  ::heroim::client::v3beta::dto::group::model::Group* temp = group_;
  group_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinAutoCreateResponse::_internal_mutable_group() {
  
  if (group_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::Group>(GetArenaForAllocation());
    group_ = p;
  }
  return group_;
}
inline ::heroim::client::v3beta::dto::group::model::Group* ChatRoomJoinAutoCreateResponse::mutable_group() {
  ::heroim::client::v3beta::dto::group::model::Group* _msg = _internal_mutable_group();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse.group)
  return _msg;
}
inline void ChatRoomJoinAutoCreateResponse::set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(group_);
  }
  if (group) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(group));
    if (message_arena != submessage_arena) {
      group = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, group, submessage_arena);
    }
    
  } else {
    
  }
  group_ = group;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse.group)
}

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

// ChatRoomQuitRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomQuitRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomQuitRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomQuitRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomQuitRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.base)
  return _internal_base();
}
inline void ChatRoomQuitRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomQuitRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomQuitRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomQuitRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomQuitRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.base)
  return _msg;
}
inline void ChatRoomQuitRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomQuitRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomQuitRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomQuitRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomQuitRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomQuitRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomQuitRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomQuitRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomQuitRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomQuitRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.groupKey)
  return _msg;
}
inline void ChatRoomQuitRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomQuitRequest.groupKey)
}

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

// ChatRoomQuitResponse

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

// ChatRoomInviteRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomInviteRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomInviteRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomInviteRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomInviteRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.base)
  return _internal_base();
}
inline void ChatRoomInviteRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomInviteRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomInviteRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomInviteRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomInviteRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.base)
  return _msg;
}
inline void ChatRoomInviteRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomInviteRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomInviteRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomInviteRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomInviteRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomInviteRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomInviteRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomInviteRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomInviteRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomInviteRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.groupKey)
  return _msg;
}
inline void ChatRoomInviteRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.groupKey)
}

// repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
inline int ChatRoomInviteRequest::_internal_users_size() const {
  return users_.size();
}
inline int ChatRoomInviteRequest::users_size() const {
  return _internal_users_size();
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomInviteRequest::mutable_users(int index) {
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.users)
  return users_.Mutable(index);
}
inline ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >*
ChatRoomInviteRequest::mutable_users() {
  // @@protoc_insertion_point(field_mutable_list:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.users)
  return &users_;
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& ChatRoomInviteRequest::_internal_users(int index) const {
  return users_.Get(index);
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& ChatRoomInviteRequest::users(int index) const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.users)
  return _internal_users(index);
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomInviteRequest::_internal_add_users() {
  return users_.Add();
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomInviteRequest::add_users() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _add = _internal_add_users();
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.users)
  return _add;
}
inline const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >&
ChatRoomInviteRequest::users() const {
  // @@protoc_insertion_point(field_list:heroim.client.v3beta.dto.group.ChatRoomInviteRequest.users)
  return users_;
}

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

// ChatRoomUserResponseItem

// .heroim.client.v3beta.dto.user.model.UserKey userKey = 1;
inline bool ChatRoomUserResponseItem::_internal_has_userkey() const {
  return this != internal_default_instance() && userkey_ != nullptr;
}
inline bool ChatRoomUserResponseItem::has_userkey() const {
  return _internal_has_userkey();
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& ChatRoomUserResponseItem::_internal_userkey() const {
  const ::heroim::client::v3beta::dto::user::model::UserKey* p = userkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::user::model::UserKey&>(
      ::heroim::client::v3beta::dto::user::model::_UserKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& ChatRoomUserResponseItem::userkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.userKey)
  return _internal_userkey();
}
inline void ChatRoomUserResponseItem::unsafe_arena_set_allocated_userkey(
    ::heroim::client::v3beta::dto::user::model::UserKey* userkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(userkey_);
  }
  userkey_ = userkey;
  if (userkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.userKey)
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomUserResponseItem::release_userkey() {
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomUserResponseItem::unsafe_arena_release_userkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.userKey)
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomUserResponseItem::_internal_mutable_userkey() {
  
  if (userkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::user::model::UserKey>(GetArenaForAllocation());
    userkey_ = p;
  }
  return userkey_;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomUserResponseItem::mutable_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _msg = _internal_mutable_userkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.userKey)
  return _msg;
}
inline void ChatRoomUserResponseItem::set_allocated_userkey(::heroim::client::v3beta::dto::user::model::UserKey* userkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(userkey_);
  }
  if (userkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(userkey));
    if (message_arena != submessage_arena) {
      userkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, userkey, submessage_arena);
    }
    
  } else {
    
  }
  userkey_ = userkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.userKey)
}

// string msg = 2;
inline void ChatRoomUserResponseItem::clear_msg() {
  msg_.ClearToEmpty();
}
inline const std::string& ChatRoomUserResponseItem::msg() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.msg)
  return _internal_msg();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void ChatRoomUserResponseItem::set_msg(ArgT0&& arg0, ArgT... args) {
 
 msg_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.msg)
}
inline std::string* ChatRoomUserResponseItem::mutable_msg() {
  std::string* _s = _internal_mutable_msg();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.msg)
  return _s;
}
inline const std::string& ChatRoomUserResponseItem::_internal_msg() const {
  return msg_.Get();
}
inline void ChatRoomUserResponseItem::_internal_set_msg(const std::string& value) {
  
  msg_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ChatRoomUserResponseItem::_internal_mutable_msg() {
  
  return msg_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ChatRoomUserResponseItem::release_msg() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.msg)
  return msg_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void ChatRoomUserResponseItem::set_allocated_msg(std::string* msg) {
  if (msg != nullptr) {
    
  } else {
    
  }
  msg_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), msg,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.msg)
}

// int32 code = 3;
inline void ChatRoomUserResponseItem::clear_code() {
  code_ = 0;
}
inline ::herogoogle::protobuf::int32 ChatRoomUserResponseItem::_internal_code() const {
  return code_;
}
inline ::herogoogle::protobuf::int32 ChatRoomUserResponseItem::code() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.code)
  return _internal_code();
}
inline void ChatRoomUserResponseItem::_internal_set_code(::herogoogle::protobuf::int32 value) {
  
  code_ = value;
}
inline void ChatRoomUserResponseItem::set_code(::herogoogle::protobuf::int32 value) {
  _internal_set_code(value);
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.code)
}

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

// ChatRoomInviteResponse

// repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
inline int ChatRoomInviteResponse::_internal_list_size() const {
  return list_.size();
}
inline int ChatRoomInviteResponse::list_size() const {
  return _internal_list_size();
}
inline void ChatRoomInviteResponse::clear_list() {
  list_.Clear();
}
inline ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* ChatRoomInviteResponse::mutable_list(int index) {
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomInviteResponse.list)
  return list_.Mutable(index);
}
inline ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >*
ChatRoomInviteResponse::mutable_list() {
  // @@protoc_insertion_point(field_mutable_list:heroim.client.v3beta.dto.group.ChatRoomInviteResponse.list)
  return &list_;
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& ChatRoomInviteResponse::_internal_list(int index) const {
  return list_.Get(index);
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& ChatRoomInviteResponse::list(int index) const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomInviteResponse.list)
  return _internal_list(index);
}
inline ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* ChatRoomInviteResponse::_internal_add_list() {
  return list_.Add();
}
inline ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* ChatRoomInviteResponse::add_list() {
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* _add = _internal_add_list();
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.group.ChatRoomInviteResponse.list)
  return _add;
}
inline const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >&
ChatRoomInviteResponse::list() const {
  // @@protoc_insertion_point(field_list:heroim.client.v3beta.dto.group.ChatRoomInviteResponse.list)
  return list_;
}

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

// ChatRoomUserRemoveRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomUserRemoveRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomUserRemoveRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomUserRemoveRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomUserRemoveRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.base)
  return _internal_base();
}
inline void ChatRoomUserRemoveRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomUserRemoveRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomUserRemoveRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomUserRemoveRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomUserRemoveRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.base)
  return _msg;
}
inline void ChatRoomUserRemoveRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomUserRemoveRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomUserRemoveRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomUserRemoveRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomUserRemoveRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomUserRemoveRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomUserRemoveRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomUserRemoveRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomUserRemoveRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomUserRemoveRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.groupKey)
  return _msg;
}
inline void ChatRoomUserRemoveRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.groupKey)
}

// repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
inline int ChatRoomUserRemoveRequest::_internal_users_size() const {
  return users_.size();
}
inline int ChatRoomUserRemoveRequest::users_size() const {
  return _internal_users_size();
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomUserRemoveRequest::mutable_users(int index) {
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.users)
  return users_.Mutable(index);
}
inline ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >*
ChatRoomUserRemoveRequest::mutable_users() {
  // @@protoc_insertion_point(field_mutable_list:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.users)
  return &users_;
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& ChatRoomUserRemoveRequest::_internal_users(int index) const {
  return users_.Get(index);
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& ChatRoomUserRemoveRequest::users(int index) const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.users)
  return _internal_users(index);
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomUserRemoveRequest::_internal_add_users() {
  return users_.Add();
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* ChatRoomUserRemoveRequest::add_users() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _add = _internal_add_users();
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.users)
  return _add;
}
inline const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >&
ChatRoomUserRemoveRequest::users() const {
  // @@protoc_insertion_point(field_list:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest.users)
  return users_;
}

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

// ChatRoomUserRemoveResponse

// repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
inline int ChatRoomUserRemoveResponse::_internal_list_size() const {
  return list_.size();
}
inline int ChatRoomUserRemoveResponse::list_size() const {
  return _internal_list_size();
}
inline void ChatRoomUserRemoveResponse::clear_list() {
  list_.Clear();
}
inline ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* ChatRoomUserRemoveResponse::mutable_list(int index) {
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse.list)
  return list_.Mutable(index);
}
inline ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >*
ChatRoomUserRemoveResponse::mutable_list() {
  // @@protoc_insertion_point(field_mutable_list:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse.list)
  return &list_;
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& ChatRoomUserRemoveResponse::_internal_list(int index) const {
  return list_.Get(index);
}
inline const ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem& ChatRoomUserRemoveResponse::list(int index) const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse.list)
  return _internal_list(index);
}
inline ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* ChatRoomUserRemoveResponse::_internal_add_list() {
  return list_.Add();
}
inline ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* ChatRoomUserRemoveResponse::add_list() {
  ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* _add = _internal_add_list();
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse.list)
  return _add;
}
inline const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >&
ChatRoomUserRemoveResponse::list() const {
  // @@protoc_insertion_point(field_list:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse.list)
  return list_;
}

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

// ChatRoomDismissRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomDismissRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomDismissRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomDismissRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomDismissRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.base)
  return _internal_base();
}
inline void ChatRoomDismissRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomDismissRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomDismissRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomDismissRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomDismissRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.base)
  return _msg;
}
inline void ChatRoomDismissRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomDismissRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomDismissRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomDismissRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomDismissRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomDismissRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomDismissRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomDismissRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomDismissRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomDismissRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.groupKey)
  return _msg;
}
inline void ChatRoomDismissRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomDismissRequest.groupKey)
}

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

// ChatRoomDismissResponse

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

// ChatRoomStatsDataRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool ChatRoomStatsDataRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool ChatRoomStatsDataRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomStatsDataRequest::_internal_base() const {
  const ::heroim::client::v3beta::dto::shared::APIRequest* p = base_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::shared::APIRequest&>(
      ::heroim::client::v3beta::dto::shared::_APIRequest_default_instance_);
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& ChatRoomStatsDataRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.base)
  return _internal_base();
}
inline void ChatRoomStatsDataRequest::unsafe_arena_set_allocated_base(
    ::heroim::client::v3beta::dto::shared::APIRequest* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base_);
  }
  base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomStatsDataRequest::release_base() {
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomStatsDataRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomStatsDataRequest::_internal_mutable_base() {
  
  if (base_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::shared::APIRequest>(GetArenaForAllocation());
    base_ = p;
  }
  return base_;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* ChatRoomStatsDataRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.base)
  return _msg;
}
inline void ChatRoomStatsDataRequest::set_allocated_base(::heroim::client::v3beta::dto::shared::APIRequest* base) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(base_);
  }
  if (base) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(base));
    if (message_arena != submessage_arena) {
      base = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  base_ = base;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.base)
}

// .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
inline bool ChatRoomStatsDataRequest::_internal_has_groupkey() const {
  return this != internal_default_instance() && groupkey_ != nullptr;
}
inline bool ChatRoomStatsDataRequest::has_groupkey() const {
  return _internal_has_groupkey();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomStatsDataRequest::_internal_groupkey() const {
  const ::heroim::client::v3beta::dto::group::model::GroupKey* p = groupkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupKey&>(
      ::heroim::client::v3beta::dto::group::model::_GroupKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupKey& ChatRoomStatsDataRequest::groupkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.groupKey)
  return _internal_groupkey();
}
inline void ChatRoomStatsDataRequest::unsafe_arena_set_allocated_groupkey(
    ::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  groupkey_ = groupkey;
  if (groupkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.groupKey)
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomStatsDataRequest::release_groupkey() {
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomStatsDataRequest::unsafe_arena_release_groupkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.groupKey)
  
  ::heroim::client::v3beta::dto::group::model::GroupKey* temp = groupkey_;
  groupkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomStatsDataRequest::_internal_mutable_groupkey() {
  
  if (groupkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupKey>(GetArenaForAllocation());
    groupkey_ = p;
  }
  return groupkey_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupKey* ChatRoomStatsDataRequest::mutable_groupkey() {
  ::heroim::client::v3beta::dto::group::model::GroupKey* _msg = _internal_mutable_groupkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.groupKey)
  return _msg;
}
inline void ChatRoomStatsDataRequest::set_allocated_groupkey(::heroim::client::v3beta::dto::group::model::GroupKey* groupkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(groupkey_);
  }
  if (groupkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(groupkey));
    if (message_arena != submessage_arena) {
      groupkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, groupkey, submessage_arena);
    }
    
  } else {
    
  }
  groupkey_ = groupkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest.groupKey)
}

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

// ChatRoomStatsDataResponse

// .heroim.client.v3beta.dto.group.model.GroupStats stats = 1;
inline bool ChatRoomStatsDataResponse::_internal_has_stats() const {
  return this != internal_default_instance() && stats_ != nullptr;
}
inline bool ChatRoomStatsDataResponse::has_stats() const {
  return _internal_has_stats();
}
inline const ::heroim::client::v3beta::dto::group::model::GroupStats& ChatRoomStatsDataResponse::_internal_stats() const {
  const ::heroim::client::v3beta::dto::group::model::GroupStats* p = stats_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::group::model::GroupStats&>(
      ::heroim::client::v3beta::dto::group::model::_GroupStats_default_instance_);
}
inline const ::heroim::client::v3beta::dto::group::model::GroupStats& ChatRoomStatsDataResponse::stats() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse.stats)
  return _internal_stats();
}
inline void ChatRoomStatsDataResponse::unsafe_arena_set_allocated_stats(
    ::heroim::client::v3beta::dto::group::model::GroupStats* stats) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(stats_);
  }
  stats_ = stats;
  if (stats) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse.stats)
}
inline ::heroim::client::v3beta::dto::group::model::GroupStats* ChatRoomStatsDataResponse::release_stats() {
  
  ::heroim::client::v3beta::dto::group::model::GroupStats* temp = stats_;
  stats_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::herogoogle::protobuf::MessageLite*>(temp);
  temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::herogoogle::protobuf::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupStats* ChatRoomStatsDataResponse::unsafe_arena_release_stats() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse.stats)
  
  ::heroim::client::v3beta::dto::group::model::GroupStats* temp = stats_;
  stats_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::group::model::GroupStats* ChatRoomStatsDataResponse::_internal_mutable_stats() {
  
  if (stats_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::group::model::GroupStats>(GetArenaForAllocation());
    stats_ = p;
  }
  return stats_;
}
inline ::heroim::client::v3beta::dto::group::model::GroupStats* ChatRoomStatsDataResponse::mutable_stats() {
  ::heroim::client::v3beta::dto::group::model::GroupStats* _msg = _internal_mutable_stats();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse.stats)
  return _msg;
}
inline void ChatRoomStatsDataResponse::set_allocated_stats(::heroim::client::v3beta::dto::group::model::GroupStats* stats) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(stats_);
  }
  if (stats) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(stats));
    if (message_arena != submessage_arena) {
      stats = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, stats, submessage_arena);
    }
    
  } else {
    
  }
  stats_ = stats;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse.stats)
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace group
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim

// @@protoc_insertion_point(global_scope)


#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto
