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

#ifndef GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2frelationship_2frelationship_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/user/model/user_model.pb.h"
#include "client/v3beta/dto/relationship/model/relationship_model.pb.h"
#include "client/v3beta/dto/shared/api.pb.h"
// @@protoc_insertion_point(includes)

#define PROTOBUF_INTERNAL_EXPORT_client_2fv3beta_2fdto_2frelationship_2frelationship_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_2frelationship_2frelationship_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[28]
    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_2frelationship_2frelationship_5fdto_2eproto;
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace relationship {
class BlockedAddRequest;
struct BlockedAddRequestDefaultTypeInternal;
extern BlockedAddRequestDefaultTypeInternal _BlockedAddRequest_default_instance_;
class BlockedAddResponse;
struct BlockedAddResponseDefaultTypeInternal;
extern BlockedAddResponseDefaultTypeInternal _BlockedAddResponse_default_instance_;
class BlockedDeleteRequest;
struct BlockedDeleteRequestDefaultTypeInternal;
extern BlockedDeleteRequestDefaultTypeInternal _BlockedDeleteRequest_default_instance_;
class BlockedDeleteResponse;
struct BlockedDeleteResponseDefaultTypeInternal;
extern BlockedDeleteResponseDefaultTypeInternal _BlockedDeleteResponse_default_instance_;
class BlockedListRequest;
struct BlockedListRequestDefaultTypeInternal;
extern BlockedListRequestDefaultTypeInternal _BlockedListRequest_default_instance_;
class BlockedListResponse;
struct BlockedListResponseDefaultTypeInternal;
extern BlockedListResponseDefaultTypeInternal _BlockedListResponse_default_instance_;
class FriendApplyListRequest;
struct FriendApplyListRequestDefaultTypeInternal;
extern FriendApplyListRequestDefaultTypeInternal _FriendApplyListRequest_default_instance_;
class FriendApplyListResponse;
struct FriendApplyListResponseDefaultTypeInternal;
extern FriendApplyListResponseDefaultTypeInternal _FriendApplyListResponse_default_instance_;
class FriendApplyListResponseItem;
struct FriendApplyListResponseItemDefaultTypeInternal;
extern FriendApplyListResponseItemDefaultTypeInternal _FriendApplyListResponseItem_default_instance_;
class FriendApplyRequest;
struct FriendApplyRequestDefaultTypeInternal;
extern FriendApplyRequestDefaultTypeInternal _FriendApplyRequest_default_instance_;
class FriendApplyResponse;
struct FriendApplyResponseDefaultTypeInternal;
extern FriendApplyResponseDefaultTypeInternal _FriendApplyResponse_default_instance_;
class FriendApplyResultItem;
struct FriendApplyResultItemDefaultTypeInternal;
extern FriendApplyResultItemDefaultTypeInternal _FriendApplyResultItem_default_instance_;
class FriendBatchDeleteRequest;
struct FriendBatchDeleteRequestDefaultTypeInternal;
extern FriendBatchDeleteRequestDefaultTypeInternal _FriendBatchDeleteRequest_default_instance_;
class FriendBatchDeleteResponse;
struct FriendBatchDeleteResponseDefaultTypeInternal;
extern FriendBatchDeleteResponseDefaultTypeInternal _FriendBatchDeleteResponse_default_instance_;
class FriendDeleteRequest;
struct FriendDeleteRequestDefaultTypeInternal;
extern FriendDeleteRequestDefaultTypeInternal _FriendDeleteRequest_default_instance_;
class FriendDeleteResponse;
struct FriendDeleteResponseDefaultTypeInternal;
extern FriendDeleteResponseDefaultTypeInternal _FriendDeleteResponse_default_instance_;
class FriendDeleteResultItem;
struct FriendDeleteResultItemDefaultTypeInternal;
extern FriendDeleteResultItemDefaultTypeInternal _FriendDeleteResultItem_default_instance_;
class FriendListRequest;
struct FriendListRequestDefaultTypeInternal;
extern FriendListRequestDefaultTypeInternal _FriendListRequest_default_instance_;
class FriendListResponse;
struct FriendListResponseDefaultTypeInternal;
extern FriendListResponseDefaultTypeInternal _FriendListResponse_default_instance_;
class FriendUpdateRequest;
struct FriendUpdateRequestDefaultTypeInternal;
extern FriendUpdateRequestDefaultTypeInternal _FriendUpdateRequest_default_instance_;
class FriendUpdateRequest_ExtraEntry_DoNotUse;
struct FriendUpdateRequest_ExtraEntry_DoNotUseDefaultTypeInternal;
extern FriendUpdateRequest_ExtraEntry_DoNotUseDefaultTypeInternal _FriendUpdateRequest_ExtraEntry_DoNotUse_default_instance_;
class FriendUpdateResponse;
struct FriendUpdateResponseDefaultTypeInternal;
extern FriendUpdateResponseDefaultTypeInternal _FriendUpdateResponse_default_instance_;
class RSFriendApplyAgreeRequest;
struct RSFriendApplyAgreeRequestDefaultTypeInternal;
extern RSFriendApplyAgreeRequestDefaultTypeInternal _RSFriendApplyAgreeRequest_default_instance_;
class RSFriendApplyAgreeResponse;
struct RSFriendApplyAgreeResponseDefaultTypeInternal;
extern RSFriendApplyAgreeResponseDefaultTypeInternal _RSFriendApplyAgreeResponse_default_instance_;
class RSFriendApplyDisagreeRequest;
struct RSFriendApplyDisagreeRequestDefaultTypeInternal;
extern RSFriendApplyDisagreeRequestDefaultTypeInternal _RSFriendApplyDisagreeRequest_default_instance_;
class RSFriendApplyDisagreeResponse;
struct RSFriendApplyDisagreeResponseDefaultTypeInternal;
extern RSFriendApplyDisagreeResponseDefaultTypeInternal _RSFriendApplyDisagreeResponse_default_instance_;
class UserBlockedItem;
struct UserBlockedItemDefaultTypeInternal;
extern UserBlockedItemDefaultTypeInternal _UserBlockedItem_default_instance_;
class UserFriendItem;
struct UserFriendItemDefaultTypeInternal;
extern UserFriendItemDefaultTypeInternal _UserFriendItem_default_instance_;
}  // namespace relationship
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim
PROTOBUF_NAMESPACE_OPEN
template<> ::heroim::client::v3beta::dto::relationship::BlockedAddRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::BlockedAddRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::BlockedAddResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::BlockedAddResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::BlockedDeleteRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::BlockedDeleteRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::BlockedDeleteResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::BlockedDeleteResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::BlockedListRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::BlockedListRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::BlockedListResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::BlockedListResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendApplyListRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendApplyListRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendApplyListResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendApplyListResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendApplyRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendApplyRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendApplyResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendApplyResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendApplyResultItem>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendBatchDeleteRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendBatchDeleteRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendBatchDeleteResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendBatchDeleteResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendDeleteRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendDeleteRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendDeleteResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendDeleteResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendListRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendListRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendListResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendListResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendUpdateRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendUpdateRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendUpdateRequest_ExtraEntry_DoNotUse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendUpdateRequest_ExtraEntry_DoNotUse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::FriendUpdateResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::FriendUpdateResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::RSFriendApplyAgreeRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::RSFriendApplyAgreeRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::RSFriendApplyAgreeResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::RSFriendApplyAgreeResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::RSFriendApplyDisagreeRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::RSFriendApplyDisagreeRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::RSFriendApplyDisagreeResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::RSFriendApplyDisagreeResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::UserBlockedItem* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::UserBlockedItem>(Arena*);
template<> ::heroim::client::v3beta::dto::relationship::UserFriendItem* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::UserFriendItem>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace relationship {

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

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

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

  inline FriendApplyRequest& operator=(const FriendApplyRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendApplyRequest& operator=(FriendApplyRequest&& 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 FriendApplyRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendApplyRequest* internal_default_instance() {
    return reinterpret_cast<const FriendApplyRequest*>(
               &_FriendApplyRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

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

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

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

  FriendApplyRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendApplyRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendApplyRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendApplyRequest& 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(FriendApplyRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendApplyRequest";
  }
  protected:
  explicit FriendApplyRequest(::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,
    kUserKeyFieldNumber = 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.user.model.UserKey userKey = 2;
  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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendApplyRequest)
 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::user::model::UserKey* userkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendApplyResponse& operator=(const FriendApplyResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendApplyResponse& operator=(FriendApplyResponse&& 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 FriendApplyResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendApplyResponse* internal_default_instance() {
    return reinterpret_cast<const FriendApplyResponse*>(
               &_FriendApplyResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

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

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

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

  FriendApplyResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendApplyResponse>(arena);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const FriendApplyResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const FriendApplyResponse& 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.relationship.FriendApplyResponse";
  }
  protected:
  explicit FriendApplyResponse(::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.relationship.FriendApplyResponse)
 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_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline RSFriendApplyAgreeRequest& operator=(const RSFriendApplyAgreeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline RSFriendApplyAgreeRequest& operator=(RSFriendApplyAgreeRequest&& 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 RSFriendApplyAgreeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const RSFriendApplyAgreeRequest* internal_default_instance() {
    return reinterpret_cast<const RSFriendApplyAgreeRequest*>(
               &_RSFriendApplyAgreeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

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

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

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

  RSFriendApplyAgreeRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RSFriendApplyAgreeRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const RSFriendApplyAgreeRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const RSFriendApplyAgreeRequest& 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(RSFriendApplyAgreeRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest";
  }
  protected:
  explicit RSFriendApplyAgreeRequest(::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 {
    kTokensFieldNumber = 2,
    kBaseFieldNumber = 1,
  };
  // repeated string tokens = 2;
  int tokens_size() const;
  private:
  int _internal_tokens_size() const;
  public:
  void clear_tokens();
  const std::string& tokens(int index) const;
  std::string* mutable_tokens(int index);
  void set_tokens(int index, const std::string& value);
  void set_tokens(int index, std::string&& value);
  void set_tokens(int index, const char* value);
  void set_tokens(int index, const char* value, size_t size);
  std::string* add_tokens();
  void add_tokens(const std::string& value);
  void add_tokens(std::string&& value);
  void add_tokens(const char* value);
  void add_tokens(const char* value, size_t size);
  const ::herogoogle::protobuf::RepeatedPtrField<std::string>& tokens() const;
  ::herogoogle::protobuf::RepeatedPtrField<std::string>* mutable_tokens();
  private:
  const std::string& _internal_tokens(int index) const;
  std::string* _internal_add_tokens();
  public:

  // .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();

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::RepeatedPtrField<std::string> tokens_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline RSFriendApplyAgreeResponse& operator=(const RSFriendApplyAgreeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline RSFriendApplyAgreeResponse& operator=(RSFriendApplyAgreeResponse&& 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 RSFriendApplyAgreeResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const RSFriendApplyAgreeResponse* internal_default_instance() {
    return reinterpret_cast<const RSFriendApplyAgreeResponse*>(
               &_RSFriendApplyAgreeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

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

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

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

  RSFriendApplyAgreeResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RSFriendApplyAgreeResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const RSFriendApplyAgreeResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const RSFriendApplyAgreeResponse& 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(RSFriendApplyAgreeResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeResponse";
  }
  protected:
  explicit RSFriendApplyAgreeResponse(::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.relationship.FriendApplyResultItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem& list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeResponse)
 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::relationship::FriendApplyResultItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline RSFriendApplyDisagreeRequest& operator=(const RSFriendApplyDisagreeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline RSFriendApplyDisagreeRequest& operator=(RSFriendApplyDisagreeRequest&& 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 RSFriendApplyDisagreeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const RSFriendApplyDisagreeRequest* internal_default_instance() {
    return reinterpret_cast<const RSFriendApplyDisagreeRequest*>(
               &_RSFriendApplyDisagreeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

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

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

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

  RSFriendApplyDisagreeRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RSFriendApplyDisagreeRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const RSFriendApplyDisagreeRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const RSFriendApplyDisagreeRequest& 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(RSFriendApplyDisagreeRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest";
  }
  protected:
  explicit RSFriendApplyDisagreeRequest(::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 {
    kTokensFieldNumber = 2,
    kBaseFieldNumber = 1,
  };
  // repeated string tokens = 2;
  int tokens_size() const;
  private:
  int _internal_tokens_size() const;
  public:
  void clear_tokens();
  const std::string& tokens(int index) const;
  std::string* mutable_tokens(int index);
  void set_tokens(int index, const std::string& value);
  void set_tokens(int index, std::string&& value);
  void set_tokens(int index, const char* value);
  void set_tokens(int index, const char* value, size_t size);
  std::string* add_tokens();
  void add_tokens(const std::string& value);
  void add_tokens(std::string&& value);
  void add_tokens(const char* value);
  void add_tokens(const char* value, size_t size);
  const ::herogoogle::protobuf::RepeatedPtrField<std::string>& tokens() const;
  ::herogoogle::protobuf::RepeatedPtrField<std::string>* mutable_tokens();
  private:
  const std::string& _internal_tokens(int index) const;
  std::string* _internal_add_tokens();
  public:

  // .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();

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::RepeatedPtrField<std::string> tokens_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline RSFriendApplyDisagreeResponse& operator=(const RSFriendApplyDisagreeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline RSFriendApplyDisagreeResponse& operator=(RSFriendApplyDisagreeResponse&& 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 RSFriendApplyDisagreeResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const RSFriendApplyDisagreeResponse* internal_default_instance() {
    return reinterpret_cast<const RSFriendApplyDisagreeResponse*>(
               &_RSFriendApplyDisagreeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

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

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

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

  RSFriendApplyDisagreeResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RSFriendApplyDisagreeResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const RSFriendApplyDisagreeResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const RSFriendApplyDisagreeResponse& 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(RSFriendApplyDisagreeResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeResponse";
  }
  protected:
  explicit RSFriendApplyDisagreeResponse(::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.relationship.FriendApplyResultItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem& list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendApplyResultItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeResponse)
 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::relationship::FriendApplyResultItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendApplyResultItem& operator=(const FriendApplyResultItem& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendApplyResultItem& operator=(FriendApplyResultItem&& 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 FriendApplyResultItem& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendApplyResultItem* internal_default_instance() {
    return reinterpret_cast<const FriendApplyResultItem*>(
               &_FriendApplyResultItem_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

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

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

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

  FriendApplyResultItem* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendApplyResultItem>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendApplyResultItem& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendApplyResultItem& 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(FriendApplyResultItem* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendApplyResultItem";
  }
  protected:
  explicit FriendApplyResultItem(::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 {
    kTokenFieldNumber = 1,
    kMessageFieldNumber = 3,
    kCodeFieldNumber = 2,
  };
  // string token = 1;
  void clear_token();
  const std::string& token() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_token(ArgT0&& arg0, ArgT... args);
  std::string* mutable_token();
  PROTOBUF_MUST_USE_RESULT std::string* release_token();
  void set_allocated_token(std::string* token);
  private:
  const std::string& _internal_token() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_token(const std::string& value);
  std::string* _internal_mutable_token();
  public:

  // string message = 3;
  void clear_message();
  const std::string& message() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_message(ArgT0&& arg0, ArgT... args);
  std::string* mutable_message();
  PROTOBUF_MUST_USE_RESULT std::string* release_message();
  void set_allocated_message(std::string* message);
  private:
  const std::string& _internal_message() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_message(const std::string& value);
  std::string* _internal_mutable_message();
  public:

  // int32 code = 2;
  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.relationship.FriendApplyResultItem)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::internal::ArenaStringPtr token_;
  ::herogoogle::protobuf::internal::ArenaStringPtr message_;
  ::herogoogle::protobuf::int32 code_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendListRequest& operator=(const FriendListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendListRequest& operator=(FriendListRequest&& 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 FriendListRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendListRequest* internal_default_instance() {
    return reinterpret_cast<const FriendListRequest*>(
               &_FriendListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

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

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

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

  FriendListRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendListRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendListRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendListRequest& 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(FriendListRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendListRequest";
  }
  protected:
  explicit FriendListRequest(::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,
  };
  // .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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendListRequest)
 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_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendListResponse& operator=(const FriendListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendListResponse& operator=(FriendListResponse&& 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 FriendListResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendListResponse* internal_default_instance() {
    return reinterpret_cast<const FriendListResponse*>(
               &_FriendListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

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

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

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

  FriendListResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendListResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendListResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendListResponse& 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(FriendListResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendListResponse";
  }
  protected:
  explicit FriendListResponse(::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.relationship.UserFriendItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::relationship::UserFriendItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::UserFriendItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::relationship::UserFriendItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::relationship::UserFriendItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::relationship::UserFriendItem& list(int index) const;
  ::heroim::client::v3beta::dto::relationship::UserFriendItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::UserFriendItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendListResponse)
 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::relationship::UserFriendItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline UserFriendItem& operator=(const UserFriendItem& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserFriendItem& operator=(UserFriendItem&& 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 UserFriendItem& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserFriendItem* internal_default_instance() {
    return reinterpret_cast<const UserFriendItem*>(
               &_UserFriendItem_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

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

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

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

  UserFriendItem* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<UserFriendItem>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const UserFriendItem& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const UserFriendItem& 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(UserFriendItem* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.UserFriendItem";
  }
  protected:
  explicit UserFriendItem(::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 {
    kUserFieldNumber = 1,
    kFriendFieldNumber = 2,
  };
  // .heroim.client.v3beta.dto.user.model.User User = 1;
  bool has_user() const;
  private:
  bool _internal_has_user() const;
  public:
  void clear_user();
  const ::heroim::client::v3beta::dto::user::model::User& user() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::user::model::User* release_user();
  ::heroim::client::v3beta::dto::user::model::User* mutable_user();
  void set_allocated_user(::heroim::client::v3beta::dto::user::model::User* user);
  private:
  const ::heroim::client::v3beta::dto::user::model::User& _internal_user() const;
  ::heroim::client::v3beta::dto::user::model::User* _internal_mutable_user();
  public:
  void unsafe_arena_set_allocated_user(
      ::heroim::client::v3beta::dto::user::model::User* user);
  ::heroim::client::v3beta::dto::user::model::User* unsafe_arena_release_user();

  // .heroim.client.v3beta.dto.relationship.model.UserFriend friend = 2;
  bool has_friend_() const;
  private:
  bool _internal_has_friend_() const;
  public:
  void clear_friend_();
  const ::heroim::client::v3beta::dto::relationship::model::UserFriend& friend_() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::relationship::model::UserFriend* release_friend_();
  ::heroim::client::v3beta::dto::relationship::model::UserFriend* mutable_friend_();
  void set_allocated_friend_(::heroim::client::v3beta::dto::relationship::model::UserFriend* friend_);
  private:
  const ::heroim::client::v3beta::dto::relationship::model::UserFriend& _internal_friend_() const;
  ::heroim::client::v3beta::dto::relationship::model::UserFriend* _internal_mutable_friend_();
  public:
  void unsafe_arena_set_allocated_friend_(
      ::heroim::client::v3beta::dto::relationship::model::UserFriend* friend_);
  ::heroim::client::v3beta::dto::relationship::model::UserFriend* unsafe_arena_release_friend_();

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::user::model::User* user_;
  ::heroim::client::v3beta::dto::relationship::model::UserFriend* friend__;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendDeleteRequest& operator=(const FriendDeleteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendDeleteRequest& operator=(FriendDeleteRequest&& 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 FriendDeleteRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendDeleteRequest* internal_default_instance() {
    return reinterpret_cast<const FriendDeleteRequest*>(
               &_FriendDeleteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

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

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

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

  FriendDeleteRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendDeleteRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendDeleteRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendDeleteRequest& 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(FriendDeleteRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendDeleteRequest";
  }
  protected:
  explicit FriendDeleteRequest(::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,
    kUserKeyFieldNumber = 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.user.model.UserKey userKey = 2;
  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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendDeleteRequest)
 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::user::model::UserKey* userkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendDeleteResponse& operator=(const FriendDeleteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendDeleteResponse& operator=(FriendDeleteResponse&& 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 FriendDeleteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendDeleteResponse* internal_default_instance() {
    return reinterpret_cast<const FriendDeleteResponse*>(
               &_FriendDeleteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

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

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

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

  FriendDeleteResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendDeleteResponse>(arena);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const FriendDeleteResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const FriendDeleteResponse& 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.relationship.FriendDeleteResponse";
  }
  protected:
  explicit FriendDeleteResponse(::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.relationship.FriendDeleteResponse)
 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_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendBatchDeleteRequest& operator=(const FriendBatchDeleteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendBatchDeleteRequest& operator=(FriendBatchDeleteRequest&& 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 FriendBatchDeleteRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendBatchDeleteRequest* internal_default_instance() {
    return reinterpret_cast<const FriendBatchDeleteRequest*>(
               &_FriendBatchDeleteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

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

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

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

  FriendBatchDeleteRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendBatchDeleteRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendBatchDeleteRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendBatchDeleteRequest& 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(FriendBatchDeleteRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest";
  }
  protected:
  explicit FriendBatchDeleteRequest(::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 {
    kUserKeyFieldNumber = 2,
    kBaseFieldNumber = 1,
  };
  // repeated .heroim.client.v3beta.dto.user.model.UserKey userKey = 2;
  int userkey_size() const;
  private:
  int _internal_userkey_size() const;
  public:
  void clear_userkey();
  ::heroim::client::v3beta::dto::user::model::UserKey* mutable_userkey(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >*
      mutable_userkey();
  private:
  const ::heroim::client::v3beta::dto::user::model::UserKey& _internal_userkey(int index) const;
  ::heroim::client::v3beta::dto::user::model::UserKey* _internal_add_userkey();
  public:
  const ::heroim::client::v3beta::dto::user::model::UserKey& userkey(int index) const;
  ::heroim::client::v3beta::dto::user::model::UserKey* add_userkey();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >&
      userkey() 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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest)
 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 > userkey_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendBatchDeleteResponse& operator=(const FriendBatchDeleteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendBatchDeleteResponse& operator=(FriendBatchDeleteResponse&& 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 FriendBatchDeleteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendBatchDeleteResponse* internal_default_instance() {
    return reinterpret_cast<const FriendBatchDeleteResponse*>(
               &_FriendBatchDeleteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

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

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

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

  FriendBatchDeleteResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendBatchDeleteResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendBatchDeleteResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendBatchDeleteResponse& 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(FriendBatchDeleteResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendBatchDeleteResponse";
  }
  protected:
  explicit FriendBatchDeleteResponse(::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.relationship.FriendDeleteResultItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem& list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendDeleteResultItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendBatchDeleteResponse)
 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::relationship::FriendDeleteResultItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendDeleteResultItem& operator=(const FriendDeleteResultItem& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendDeleteResultItem& operator=(FriendDeleteResultItem&& 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 FriendDeleteResultItem& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendDeleteResultItem* internal_default_instance() {
    return reinterpret_cast<const FriendDeleteResultItem*>(
               &_FriendDeleteResultItem_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

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

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

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

  FriendDeleteResultItem* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendDeleteResultItem>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendDeleteResultItem& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendDeleteResultItem& 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(FriendDeleteResultItem* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendDeleteResultItem";
  }
  protected:
  explicit FriendDeleteResultItem(::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 {
    kMessageFieldNumber = 3,
    kUserKeyFieldNumber = 1,
    kCodeFieldNumber = 2,
  };
  // string message = 3;
  void clear_message();
  const std::string& message() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_message(ArgT0&& arg0, ArgT... args);
  std::string* mutable_message();
  PROTOBUF_MUST_USE_RESULT std::string* release_message();
  void set_allocated_message(std::string* message);
  private:
  const std::string& _internal_message() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_message(const std::string& value);
  std::string* _internal_mutable_message();
  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 = 2;
  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.relationship.FriendDeleteResultItem)
 private:
  class _Internal;

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::internal::ArenaStringPtr message_;
  ::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_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline BlockedAddRequest& operator=(const BlockedAddRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlockedAddRequest& operator=(BlockedAddRequest&& 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 BlockedAddRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const BlockedAddRequest* internal_default_instance() {
    return reinterpret_cast<const BlockedAddRequest*>(
               &_BlockedAddRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

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

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

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

  BlockedAddRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BlockedAddRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const BlockedAddRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const BlockedAddRequest& 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(BlockedAddRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.BlockedAddRequest";
  }
  protected:
  explicit BlockedAddRequest(::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,
    kUserKeyFieldNumber = 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.user.model.UserKey userKey = 2;
  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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.BlockedAddRequest)
 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::user::model::UserKey* userkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline BlockedAddResponse& operator=(const BlockedAddResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlockedAddResponse& operator=(BlockedAddResponse&& 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 BlockedAddResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const BlockedAddResponse* internal_default_instance() {
    return reinterpret_cast<const BlockedAddResponse*>(
               &_BlockedAddResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

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

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

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

  BlockedAddResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BlockedAddResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const BlockedAddResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const BlockedAddResponse& 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(BlockedAddResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.BlockedAddResponse";
  }
  protected:
  explicit BlockedAddResponse(::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 {
    kBlockedFieldNumber = 1,
  };
  // .heroim.client.v3beta.dto.relationship.UserBlockedItem blocked = 1;
  bool has_blocked() const;
  private:
  bool _internal_has_blocked() const;
  public:
  void clear_blocked();
  const ::heroim::client::v3beta::dto::relationship::UserBlockedItem& blocked() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::relationship::UserBlockedItem* release_blocked();
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* mutable_blocked();
  void set_allocated_blocked(::heroim::client::v3beta::dto::relationship::UserBlockedItem* blocked);
  private:
  const ::heroim::client::v3beta::dto::relationship::UserBlockedItem& _internal_blocked() const;
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* _internal_mutable_blocked();
  public:
  void unsafe_arena_set_allocated_blocked(
      ::heroim::client::v3beta::dto::relationship::UserBlockedItem* blocked);
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* unsafe_arena_release_blocked();

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* blocked_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline BlockedDeleteRequest& operator=(const BlockedDeleteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlockedDeleteRequest& operator=(BlockedDeleteRequest&& 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 BlockedDeleteRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const BlockedDeleteRequest* internal_default_instance() {
    return reinterpret_cast<const BlockedDeleteRequest*>(
               &_BlockedDeleteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

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

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

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

  BlockedDeleteRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BlockedDeleteRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const BlockedDeleteRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const BlockedDeleteRequest& 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(BlockedDeleteRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.BlockedDeleteRequest";
  }
  protected:
  explicit BlockedDeleteRequest(::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,
    kUserKeyFieldNumber = 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.user.model.UserKey userKey = 2;
  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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.BlockedDeleteRequest)
 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::user::model::UserKey* userkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline BlockedDeleteResponse& operator=(const BlockedDeleteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlockedDeleteResponse& operator=(BlockedDeleteResponse&& 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 BlockedDeleteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const BlockedDeleteResponse* internal_default_instance() {
    return reinterpret_cast<const BlockedDeleteResponse*>(
               &_BlockedDeleteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

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

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

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

  BlockedDeleteResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BlockedDeleteResponse>(arena);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const BlockedDeleteResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const BlockedDeleteResponse& 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.relationship.BlockedDeleteResponse";
  }
  protected:
  explicit BlockedDeleteResponse(::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.relationship.BlockedDeleteResponse)
 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_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline BlockedListRequest& operator=(const BlockedListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlockedListRequest& operator=(BlockedListRequest&& 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 BlockedListRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const BlockedListRequest* internal_default_instance() {
    return reinterpret_cast<const BlockedListRequest*>(
               &_BlockedListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

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

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

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

  BlockedListRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BlockedListRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const BlockedListRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const BlockedListRequest& 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(BlockedListRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.BlockedListRequest";
  }
  protected:
  explicit BlockedListRequest(::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,
  };
  // .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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.BlockedListRequest)
 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_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline BlockedListResponse& operator=(const BlockedListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlockedListResponse& operator=(BlockedListResponse&& 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 BlockedListResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const BlockedListResponse* internal_default_instance() {
    return reinterpret_cast<const BlockedListResponse*>(
               &_BlockedListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

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

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

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

  BlockedListResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BlockedListResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const BlockedListResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const BlockedListResponse& 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(BlockedListResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.BlockedListResponse";
  }
  protected:
  explicit BlockedListResponse(::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.relationship.UserBlockedItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::UserBlockedItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::relationship::UserBlockedItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::relationship::UserBlockedItem& list(int index) const;
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::UserBlockedItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.BlockedListResponse)
 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::relationship::UserBlockedItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline UserBlockedItem& operator=(const UserBlockedItem& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserBlockedItem& operator=(UserBlockedItem&& 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 UserBlockedItem& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserBlockedItem* internal_default_instance() {
    return reinterpret_cast<const UserBlockedItem*>(
               &_UserBlockedItem_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

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

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

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

  UserBlockedItem* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<UserBlockedItem>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const UserBlockedItem& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const UserBlockedItem& 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(UserBlockedItem* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.UserBlockedItem";
  }
  protected:
  explicit UserBlockedItem(::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 {
    kUserFieldNumber = 1,
    kBlockedFieldNumber = 2,
  };
  // .heroim.client.v3beta.dto.user.model.User User = 1;
  bool has_user() const;
  private:
  bool _internal_has_user() const;
  public:
  void clear_user();
  const ::heroim::client::v3beta::dto::user::model::User& user() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::user::model::User* release_user();
  ::heroim::client::v3beta::dto::user::model::User* mutable_user();
  void set_allocated_user(::heroim::client::v3beta::dto::user::model::User* user);
  private:
  const ::heroim::client::v3beta::dto::user::model::User& _internal_user() const;
  ::heroim::client::v3beta::dto::user::model::User* _internal_mutable_user();
  public:
  void unsafe_arena_set_allocated_user(
      ::heroim::client::v3beta::dto::user::model::User* user);
  ::heroim::client::v3beta::dto::user::model::User* unsafe_arena_release_user();

  // .heroim.client.v3beta.dto.relationship.model.UserBlocked blocked = 2;
  bool has_blocked() const;
  private:
  bool _internal_has_blocked() const;
  public:
  void clear_blocked();
  const ::heroim::client::v3beta::dto::relationship::model::UserBlocked& blocked() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::relationship::model::UserBlocked* release_blocked();
  ::heroim::client::v3beta::dto::relationship::model::UserBlocked* mutable_blocked();
  void set_allocated_blocked(::heroim::client::v3beta::dto::relationship::model::UserBlocked* blocked);
  private:
  const ::heroim::client::v3beta::dto::relationship::model::UserBlocked& _internal_blocked() const;
  ::heroim::client::v3beta::dto::relationship::model::UserBlocked* _internal_mutable_blocked();
  public:
  void unsafe_arena_set_allocated_blocked(
      ::heroim::client::v3beta::dto::relationship::model::UserBlocked* blocked);
  ::heroim::client::v3beta::dto::relationship::model::UserBlocked* unsafe_arena_release_blocked();

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::user::model::User* user_;
  ::heroim::client::v3beta::dto::relationship::model::UserBlocked* blocked_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendApplyListRequest& operator=(const FriendApplyListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendApplyListRequest& operator=(FriendApplyListRequest&& 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 FriendApplyListRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendApplyListRequest* internal_default_instance() {
    return reinterpret_cast<const FriendApplyListRequest*>(
               &_FriendApplyListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

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

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

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

  FriendApplyListRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendApplyListRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendApplyListRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendApplyListRequest& 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(FriendApplyListRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendApplyListRequest";
  }
  protected:
  explicit FriendApplyListRequest(::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,
  };
  // .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();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendApplyListRequest)
 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_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendApplyListResponse& operator=(const FriendApplyListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendApplyListResponse& operator=(FriendApplyListResponse&& 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 FriendApplyListResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendApplyListResponse* internal_default_instance() {
    return reinterpret_cast<const FriendApplyListResponse*>(
               &_FriendApplyListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

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

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

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

  FriendApplyListResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendApplyListResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendApplyListResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendApplyListResponse& 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(FriendApplyListResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendApplyListResponse";
  }
  protected:
  explicit FriendApplyListResponse(::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.relationship.FriendApplyListResponseItem list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem* mutable_list(int index);
  ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem >*
      mutable_list();
  private:
  const ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem& _internal_list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem* _internal_add_list();
  public:
  const ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem& list(int index) const;
  ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem* add_list();
  const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::relationship::FriendApplyListResponseItem >&
      list() const;

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.relationship.FriendApplyListResponse)
 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::relationship::FriendApplyListResponseItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendApplyListResponseItem& operator=(const FriendApplyListResponseItem& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendApplyListResponseItem& operator=(FriendApplyListResponseItem&& 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 FriendApplyListResponseItem& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendApplyListResponseItem* internal_default_instance() {
    return reinterpret_cast<const FriendApplyListResponseItem*>(
               &_FriendApplyListResponseItem_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

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

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

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

  FriendApplyListResponseItem* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendApplyListResponseItem>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendApplyListResponseItem& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendApplyListResponseItem& 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(FriendApplyListResponseItem* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem";
  }
  protected:
  explicit FriendApplyListResponseItem(::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 {
    kActTokenFieldNumber = 3,
    kUserFieldNumber = 1,
    kApplyTimeFieldNumber = 2,
  };
  // string actToken = 3;
  void clear_acttoken();
  const std::string& acttoken() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_acttoken(ArgT0&& arg0, ArgT... args);
  std::string* mutable_acttoken();
  PROTOBUF_MUST_USE_RESULT std::string* release_acttoken();
  void set_allocated_acttoken(std::string* acttoken);
  private:
  const std::string& _internal_acttoken() const;
  inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void _internal_set_acttoken(const std::string& value);
  std::string* _internal_mutable_acttoken();
  public:

  // .heroim.client.v3beta.dto.user.model.User user = 1;
  bool has_user() const;
  private:
  bool _internal_has_user() const;
  public:
  void clear_user();
  const ::heroim::client::v3beta::dto::user::model::User& user() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::user::model::User* release_user();
  ::heroim::client::v3beta::dto::user::model::User* mutable_user();
  void set_allocated_user(::heroim::client::v3beta::dto::user::model::User* user);
  private:
  const ::heroim::client::v3beta::dto::user::model::User& _internal_user() const;
  ::heroim::client::v3beta::dto::user::model::User* _internal_mutable_user();
  public:
  void unsafe_arena_set_allocated_user(
      ::heroim::client::v3beta::dto::user::model::User* user);
  ::heroim::client::v3beta::dto::user::model::User* unsafe_arena_release_user();

  // int64 applyTime = 2;
  void clear_applytime();
  ::herogoogle::protobuf::int64 applytime() const;
  void set_applytime(::herogoogle::protobuf::int64 value);
  private:
  ::herogoogle::protobuf::int64 _internal_applytime() const;
  void _internal_set_applytime(::herogoogle::protobuf::int64 value);
  public:

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::internal::ArenaStringPtr acttoken_;
  ::heroim::client::v3beta::dto::user::model::User* user_;
  ::herogoogle::protobuf::int64 applytime_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

class FriendUpdateRequest_ExtraEntry_DoNotUse : public ::herogoogle::protobuf::internal::MapEntry<FriendUpdateRequest_ExtraEntry_DoNotUse, 
    std::string, std::string,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING> {
public:
  typedef ::herogoogle::protobuf::internal::MapEntry<FriendUpdateRequest_ExtraEntry_DoNotUse, 
    std::string, std::string,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING> SuperType;
  FriendUpdateRequest_ExtraEntry_DoNotUse();
  explicit constexpr FriendUpdateRequest_ExtraEntry_DoNotUse(
      ::herogoogle::protobuf::internal::ConstantInitialized);
  explicit FriendUpdateRequest_ExtraEntry_DoNotUse(::herogoogle::protobuf::Arena* arena);
  void MergeFrom(const FriendUpdateRequest_ExtraEntry_DoNotUse& other);
  static const FriendUpdateRequest_ExtraEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const FriendUpdateRequest_ExtraEntry_DoNotUse*>(&_FriendUpdateRequest_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.relationship.FriendUpdateRequest.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.relationship.FriendUpdateRequest.ExtraEntry.value");
 }
  using ::herogoogle::protobuf::Message::MergeFrom;
  ::herogoogle::protobuf::Metadata GetMetadata() const final;
};

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

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

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

  inline FriendUpdateRequest& operator=(const FriendUpdateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendUpdateRequest& operator=(FriendUpdateRequest&& 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 FriendUpdateRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendUpdateRequest* internal_default_instance() {
    return reinterpret_cast<const FriendUpdateRequest*>(
               &_FriendUpdateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

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

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

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

  FriendUpdateRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendUpdateRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const FriendUpdateRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const FriendUpdateRequest& 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(FriendUpdateRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.relationship.FriendUpdateRequest";
  }
  protected:
  explicit FriendUpdateRequest(::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 = 3,
    kBaseFieldNumber = 1,
    kUserKeyFieldNumber = 2,
  };
  // map<string, string> extra = 3;
  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();

  // .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.user.model.UserKey userKey = 2;
  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();

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::herogoogle::protobuf::internal::MapField<
      FriendUpdateRequest_ExtraEntry_DoNotUse,
      std::string, std::string,
      ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::herogoogle::protobuf::internal::WireFormatLite::TYPE_STRING> extra_;
  ::heroim::client::v3beta::dto::shared::APIRequest* base_;
  ::heroim::client::v3beta::dto::user::model::UserKey* userkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FriendUpdateResponse& operator=(const FriendUpdateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FriendUpdateResponse& operator=(FriendUpdateResponse&& 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 FriendUpdateResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const FriendUpdateResponse* internal_default_instance() {
    return reinterpret_cast<const FriendUpdateResponse*>(
               &_FriendUpdateResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

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

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

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

  FriendUpdateResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FriendUpdateResponse>(arena);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const FriendUpdateResponse& from) {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const FriendUpdateResponse& 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.relationship.FriendUpdateResponse";
  }
  protected:
  explicit FriendUpdateResponse(::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.relationship.FriendUpdateResponse)
 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_2frelationship_2frelationship_5fdto_2eproto;
};
// ===================================================================


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

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

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool FriendApplyRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool FriendApplyRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& FriendApplyRequest::_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& FriendApplyRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyRequest.base)
  return _internal_base();
}
inline void FriendApplyRequest::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.relationship.FriendApplyRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendApplyRequest::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* FriendApplyRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendApplyRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendApplyRequest::_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* FriendApplyRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendApplyRequest.base)
  return _msg;
}
inline void FriendApplyRequest::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.relationship.FriendApplyRequest.base)
}

// .heroim.client.v3beta.dto.user.model.UserKey userKey = 2;
inline bool FriendApplyRequest::_internal_has_userkey() const {
  return this != internal_default_instance() && userkey_ != nullptr;
}
inline bool FriendApplyRequest::has_userkey() const {
  return _internal_has_userkey();
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& FriendApplyRequest::_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& FriendApplyRequest::userkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyRequest.userKey)
  return _internal_userkey();
}
inline void FriendApplyRequest::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.relationship.FriendApplyRequest.userKey)
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendApplyRequest::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* FriendApplyRequest::unsafe_arena_release_userkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendApplyRequest.userKey)
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendApplyRequest::_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* FriendApplyRequest::mutable_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _msg = _internal_mutable_userkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendApplyRequest.userKey)
  return _msg;
}
inline void FriendApplyRequest::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.relationship.FriendApplyRequest.userKey)
}

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

// FriendApplyResponse

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

// RSFriendApplyAgreeRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool RSFriendApplyAgreeRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool RSFriendApplyAgreeRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& RSFriendApplyAgreeRequest::_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& RSFriendApplyAgreeRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.base)
  return _internal_base();
}
inline void RSFriendApplyAgreeRequest::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.relationship.RSFriendApplyAgreeRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* RSFriendApplyAgreeRequest::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* RSFriendApplyAgreeRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* RSFriendApplyAgreeRequest::_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* RSFriendApplyAgreeRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.base)
  return _msg;
}
inline void RSFriendApplyAgreeRequest::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.relationship.RSFriendApplyAgreeRequest.base)
}

// repeated string tokens = 2;
inline int RSFriendApplyAgreeRequest::_internal_tokens_size() const {
  return tokens_.size();
}
inline int RSFriendApplyAgreeRequest::tokens_size() const {
  return _internal_tokens_size();
}
inline void RSFriendApplyAgreeRequest::clear_tokens() {
  tokens_.Clear();
}
inline std::string* RSFriendApplyAgreeRequest::add_tokens() {
  std::string* _s = _internal_add_tokens();
  // @@protoc_insertion_point(field_add_mutable:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
  return _s;
}
inline const std::string& RSFriendApplyAgreeRequest::_internal_tokens(int index) const {
  return tokens_.Get(index);
}
inline const std::string& RSFriendApplyAgreeRequest::tokens(int index) const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
  return _internal_tokens(index);
}
inline std::string* RSFriendApplyAgreeRequest::mutable_tokens(int index) {
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
  return tokens_.Mutable(index);
}
inline void RSFriendApplyAgreeRequest::set_tokens(int index, const std::string& value) {
  tokens_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline void RSFriendApplyAgreeRequest::set_tokens(int index, std::string&& value) {
  tokens_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline void RSFriendApplyAgreeRequest::set_tokens(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  tokens_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline void RSFriendApplyAgreeRequest::set_tokens(int index, const char* value, size_t size) {
  tokens_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline std::string* RSFriendApplyAgreeRequest::_internal_add_tokens() {
  return tokens_.Add();
}
inline void RSFriendApplyAgreeRequest::add_tokens(const std::string& value) {
  tokens_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline void RSFriendApplyAgreeRequest::add_tokens(std::string&& value) {
  tokens_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline void RSFriendApplyAgreeRequest::add_tokens(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  tokens_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline void RSFriendApplyAgreeRequest::add_tokens(const char* value, size_t size) {
  tokens_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
}
inline const ::herogoogle::protobuf::RepeatedPtrField<std::string>&
RSFriendApplyAgreeRequest::tokens() const {
  // @@protoc_insertion_point(field_list:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
  return tokens_;
}
inline ::herogoogle::protobuf::RepeatedPtrField<std::string>*
RSFriendApplyAgreeRequest::mutable_tokens() {
  // @@protoc_insertion_point(field_mutable_list:heroim.client.v3beta.dto.relationship.RSFriendApplyAgreeRequest.tokens)
  return &tokens_;
}

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

// RSFriendApplyAgreeResponse

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

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

// RSFriendApplyDisagreeRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool RSFriendApplyDisagreeRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool RSFriendApplyDisagreeRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& RSFriendApplyDisagreeRequest::_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& RSFriendApplyDisagreeRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.base)
  return _internal_base();
}
inline void RSFriendApplyDisagreeRequest::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.relationship.RSFriendApplyDisagreeRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* RSFriendApplyDisagreeRequest::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* RSFriendApplyDisagreeRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* RSFriendApplyDisagreeRequest::_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* RSFriendApplyDisagreeRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.base)
  return _msg;
}
inline void RSFriendApplyDisagreeRequest::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.relationship.RSFriendApplyDisagreeRequest.base)
}

// repeated string tokens = 2;
inline int RSFriendApplyDisagreeRequest::_internal_tokens_size() const {
  return tokens_.size();
}
inline int RSFriendApplyDisagreeRequest::tokens_size() const {
  return _internal_tokens_size();
}
inline void RSFriendApplyDisagreeRequest::clear_tokens() {
  tokens_.Clear();
}
inline std::string* RSFriendApplyDisagreeRequest::add_tokens() {
  std::string* _s = _internal_add_tokens();
  // @@protoc_insertion_point(field_add_mutable:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
  return _s;
}
inline const std::string& RSFriendApplyDisagreeRequest::_internal_tokens(int index) const {
  return tokens_.Get(index);
}
inline const std::string& RSFriendApplyDisagreeRequest::tokens(int index) const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
  return _internal_tokens(index);
}
inline std::string* RSFriendApplyDisagreeRequest::mutable_tokens(int index) {
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
  return tokens_.Mutable(index);
}
inline void RSFriendApplyDisagreeRequest::set_tokens(int index, const std::string& value) {
  tokens_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline void RSFriendApplyDisagreeRequest::set_tokens(int index, std::string&& value) {
  tokens_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline void RSFriendApplyDisagreeRequest::set_tokens(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  tokens_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline void RSFriendApplyDisagreeRequest::set_tokens(int index, const char* value, size_t size) {
  tokens_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline std::string* RSFriendApplyDisagreeRequest::_internal_add_tokens() {
  return tokens_.Add();
}
inline void RSFriendApplyDisagreeRequest::add_tokens(const std::string& value) {
  tokens_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline void RSFriendApplyDisagreeRequest::add_tokens(std::string&& value) {
  tokens_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline void RSFriendApplyDisagreeRequest::add_tokens(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  tokens_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline void RSFriendApplyDisagreeRequest::add_tokens(const char* value, size_t size) {
  tokens_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
}
inline const ::herogoogle::protobuf::RepeatedPtrField<std::string>&
RSFriendApplyDisagreeRequest::tokens() const {
  // @@protoc_insertion_point(field_list:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
  return tokens_;
}
inline ::herogoogle::protobuf::RepeatedPtrField<std::string>*
RSFriendApplyDisagreeRequest::mutable_tokens() {
  // @@protoc_insertion_point(field_mutable_list:heroim.client.v3beta.dto.relationship.RSFriendApplyDisagreeRequest.tokens)
  return &tokens_;
}

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

// RSFriendApplyDisagreeResponse

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

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

// FriendApplyResultItem

// string token = 1;
inline void FriendApplyResultItem::clear_token() {
  token_.ClearToEmpty();
}
inline const std::string& FriendApplyResultItem::token() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.token)
  return _internal_token();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void FriendApplyResultItem::set_token(ArgT0&& arg0, ArgT... args) {
 
 token_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.token)
}
inline std::string* FriendApplyResultItem::mutable_token() {
  std::string* _s = _internal_mutable_token();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.token)
  return _s;
}
inline const std::string& FriendApplyResultItem::_internal_token() const {
  return token_.Get();
}
inline void FriendApplyResultItem::_internal_set_token(const std::string& value) {
  
  token_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* FriendApplyResultItem::_internal_mutable_token() {
  
  return token_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* FriendApplyResultItem::release_token() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.token)
  return token_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void FriendApplyResultItem::set_allocated_token(std::string* token) {
  if (token != nullptr) {
    
  } else {
    
  }
  token_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), token,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.token)
}

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

// string message = 3;
inline void FriendApplyResultItem::clear_message() {
  message_.ClearToEmpty();
}
inline const std::string& FriendApplyResultItem::message() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.message)
  return _internal_message();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void FriendApplyResultItem::set_message(ArgT0&& arg0, ArgT... args) {
 
 message_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.message)
}
inline std::string* FriendApplyResultItem::mutable_message() {
  std::string* _s = _internal_mutable_message();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.message)
  return _s;
}
inline const std::string& FriendApplyResultItem::_internal_message() const {
  return message_.Get();
}
inline void FriendApplyResultItem::_internal_set_message(const std::string& value) {
  
  message_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* FriendApplyResultItem::_internal_mutable_message() {
  
  return message_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* FriendApplyResultItem::release_message() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.message)
  return message_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void FriendApplyResultItem::set_allocated_message(std::string* message) {
  if (message != nullptr) {
    
  } else {
    
  }
  message_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), message,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.FriendApplyResultItem.message)
}

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

// FriendListRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool FriendListRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool FriendListRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& FriendListRequest::_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& FriendListRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendListRequest.base)
  return _internal_base();
}
inline void FriendListRequest::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.relationship.FriendListRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendListRequest::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* FriendListRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendListRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendListRequest::_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* FriendListRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendListRequest.base)
  return _msg;
}
inline void FriendListRequest::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.relationship.FriendListRequest.base)
}

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

// FriendListResponse

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

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

// UserFriendItem

// .heroim.client.v3beta.dto.user.model.User User = 1;
inline bool UserFriendItem::_internal_has_user() const {
  return this != internal_default_instance() && user_ != nullptr;
}
inline bool UserFriendItem::has_user() const {
  return _internal_has_user();
}
inline const ::heroim::client::v3beta::dto::user::model::User& UserFriendItem::_internal_user() const {
  const ::heroim::client::v3beta::dto::user::model::User* p = user_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::user::model::User&>(
      ::heroim::client::v3beta::dto::user::model::_User_default_instance_);
}
inline const ::heroim::client::v3beta::dto::user::model::User& UserFriendItem::user() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.UserFriendItem.User)
  return _internal_user();
}
inline void UserFriendItem::unsafe_arena_set_allocated_user(
    ::heroim::client::v3beta::dto::user::model::User* user) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(user_);
  }
  user_ = user;
  if (user) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.relationship.UserFriendItem.User)
}
inline ::heroim::client::v3beta::dto::user::model::User* UserFriendItem::release_user() {
  
  ::heroim::client::v3beta::dto::user::model::User* temp = user_;
  user_ = 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::User* UserFriendItem::unsafe_arena_release_user() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.UserFriendItem.User)
  
  ::heroim::client::v3beta::dto::user::model::User* temp = user_;
  user_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::User* UserFriendItem::_internal_mutable_user() {
  
  if (user_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::user::model::User>(GetArenaForAllocation());
    user_ = p;
  }
  return user_;
}
inline ::heroim::client::v3beta::dto::user::model::User* UserFriendItem::mutable_user() {
  ::heroim::client::v3beta::dto::user::model::User* _msg = _internal_mutable_user();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.UserFriendItem.User)
  return _msg;
}
inline void UserFriendItem::set_allocated_user(::heroim::client::v3beta::dto::user::model::User* user) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(user_);
  }
  if (user) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(user));
    if (message_arena != submessage_arena) {
      user = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, user, submessage_arena);
    }
    
  } else {
    
  }
  user_ = user;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.UserFriendItem.User)
}

// .heroim.client.v3beta.dto.relationship.model.UserFriend friend = 2;
inline bool UserFriendItem::_internal_has_friend_() const {
  return this != internal_default_instance() && friend__ != nullptr;
}
inline bool UserFriendItem::has_friend_() const {
  return _internal_has_friend_();
}
inline const ::heroim::client::v3beta::dto::relationship::model::UserFriend& UserFriendItem::_internal_friend_() const {
  const ::heroim::client::v3beta::dto::relationship::model::UserFriend* p = friend__;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::relationship::model::UserFriend&>(
      ::heroim::client::v3beta::dto::relationship::model::_UserFriend_default_instance_);
}
inline const ::heroim::client::v3beta::dto::relationship::model::UserFriend& UserFriendItem::friend_() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.UserFriendItem.friend)
  return _internal_friend_();
}
inline void UserFriendItem::unsafe_arena_set_allocated_friend_(
    ::heroim::client::v3beta::dto::relationship::model::UserFriend* friend_) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(friend__);
  }
  friend__ = friend_;
  if (friend_) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.relationship.UserFriendItem.friend)
}
inline ::heroim::client::v3beta::dto::relationship::model::UserFriend* UserFriendItem::release_friend_() {
  
  ::heroim::client::v3beta::dto::relationship::model::UserFriend* temp = friend__;
  friend__ = 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::relationship::model::UserFriend* UserFriendItem::unsafe_arena_release_friend_() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.UserFriendItem.friend)
  
  ::heroim::client::v3beta::dto::relationship::model::UserFriend* temp = friend__;
  friend__ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::relationship::model::UserFriend* UserFriendItem::_internal_mutable_friend_() {
  
  if (friend__ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::model::UserFriend>(GetArenaForAllocation());
    friend__ = p;
  }
  return friend__;
}
inline ::heroim::client::v3beta::dto::relationship::model::UserFriend* UserFriendItem::mutable_friend_() {
  ::heroim::client::v3beta::dto::relationship::model::UserFriend* _msg = _internal_mutable_friend_();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.UserFriendItem.friend)
  return _msg;
}
inline void UserFriendItem::set_allocated_friend_(::heroim::client::v3beta::dto::relationship::model::UserFriend* friend_) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(friend__);
  }
  if (friend_) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(friend_));
    if (message_arena != submessage_arena) {
      friend_ = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, friend_, submessage_arena);
    }
    
  } else {
    
  }
  friend__ = friend_;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.UserFriendItem.friend)
}

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

// FriendDeleteRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool FriendDeleteRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool FriendDeleteRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& FriendDeleteRequest::_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& FriendDeleteRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendDeleteRequest.base)
  return _internal_base();
}
inline void FriendDeleteRequest::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.relationship.FriendDeleteRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendDeleteRequest::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* FriendDeleteRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendDeleteRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendDeleteRequest::_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* FriendDeleteRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendDeleteRequest.base)
  return _msg;
}
inline void FriendDeleteRequest::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.relationship.FriendDeleteRequest.base)
}

// .heroim.client.v3beta.dto.user.model.UserKey userKey = 2;
inline bool FriendDeleteRequest::_internal_has_userkey() const {
  return this != internal_default_instance() && userkey_ != nullptr;
}
inline bool FriendDeleteRequest::has_userkey() const {
  return _internal_has_userkey();
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& FriendDeleteRequest::_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& FriendDeleteRequest::userkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendDeleteRequest.userKey)
  return _internal_userkey();
}
inline void FriendDeleteRequest::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.relationship.FriendDeleteRequest.userKey)
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendDeleteRequest::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* FriendDeleteRequest::unsafe_arena_release_userkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendDeleteRequest.userKey)
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendDeleteRequest::_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* FriendDeleteRequest::mutable_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _msg = _internal_mutable_userkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendDeleteRequest.userKey)
  return _msg;
}
inline void FriendDeleteRequest::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.relationship.FriendDeleteRequest.userKey)
}

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

// FriendDeleteResponse

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

// FriendBatchDeleteRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool FriendBatchDeleteRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool FriendBatchDeleteRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& FriendBatchDeleteRequest::_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& FriendBatchDeleteRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.base)
  return _internal_base();
}
inline void FriendBatchDeleteRequest::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.relationship.FriendBatchDeleteRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendBatchDeleteRequest::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* FriendBatchDeleteRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendBatchDeleteRequest::_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* FriendBatchDeleteRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.base)
  return _msg;
}
inline void FriendBatchDeleteRequest::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.relationship.FriendBatchDeleteRequest.base)
}

// repeated .heroim.client.v3beta.dto.user.model.UserKey userKey = 2;
inline int FriendBatchDeleteRequest::_internal_userkey_size() const {
  return userkey_.size();
}
inline int FriendBatchDeleteRequest::userkey_size() const {
  return _internal_userkey_size();
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendBatchDeleteRequest::mutable_userkey(int index) {
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.userKey)
  return userkey_.Mutable(index);
}
inline ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >*
FriendBatchDeleteRequest::mutable_userkey() {
  // @@protoc_insertion_point(field_mutable_list:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.userKey)
  return &userkey_;
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& FriendBatchDeleteRequest::_internal_userkey(int index) const {
  return userkey_.Get(index);
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& FriendBatchDeleteRequest::userkey(int index) const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.userKey)
  return _internal_userkey(index);
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendBatchDeleteRequest::_internal_add_userkey() {
  return userkey_.Add();
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendBatchDeleteRequest::add_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _add = _internal_add_userkey();
  // @@protoc_insertion_point(field_add:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.userKey)
  return _add;
}
inline const ::herogoogle::protobuf::RepeatedPtrField< ::heroim::client::v3beta::dto::user::model::UserKey >&
FriendBatchDeleteRequest::userkey() const {
  // @@protoc_insertion_point(field_list:heroim.client.v3beta.dto.relationship.FriendBatchDeleteRequest.userKey)
  return userkey_;
}

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

// FriendBatchDeleteResponse

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

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

// FriendDeleteResultItem

// .heroim.client.v3beta.dto.user.model.UserKey userKey = 1;
inline bool FriendDeleteResultItem::_internal_has_userkey() const {
  return this != internal_default_instance() && userkey_ != nullptr;
}
inline bool FriendDeleteResultItem::has_userkey() const {
  return _internal_has_userkey();
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& FriendDeleteResultItem::_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& FriendDeleteResultItem::userkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.userKey)
  return _internal_userkey();
}
inline void FriendDeleteResultItem::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.relationship.FriendDeleteResultItem.userKey)
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendDeleteResultItem::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* FriendDeleteResultItem::unsafe_arena_release_userkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.userKey)
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendDeleteResultItem::_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* FriendDeleteResultItem::mutable_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _msg = _internal_mutable_userkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.userKey)
  return _msg;
}
inline void FriendDeleteResultItem::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.relationship.FriendDeleteResultItem.userKey)
}

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

// string message = 3;
inline void FriendDeleteResultItem::clear_message() {
  message_.ClearToEmpty();
}
inline const std::string& FriendDeleteResultItem::message() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.message)
  return _internal_message();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void FriendDeleteResultItem::set_message(ArgT0&& arg0, ArgT... args) {
 
 message_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.message)
}
inline std::string* FriendDeleteResultItem::mutable_message() {
  std::string* _s = _internal_mutable_message();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.message)
  return _s;
}
inline const std::string& FriendDeleteResultItem::_internal_message() const {
  return message_.Get();
}
inline void FriendDeleteResultItem::_internal_set_message(const std::string& value) {
  
  message_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* FriendDeleteResultItem::_internal_mutable_message() {
  
  return message_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* FriendDeleteResultItem::release_message() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.message)
  return message_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void FriendDeleteResultItem::set_allocated_message(std::string* message) {
  if (message != nullptr) {
    
  } else {
    
  }
  message_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), message,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.FriendDeleteResultItem.message)
}

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

// BlockedAddRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool BlockedAddRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool BlockedAddRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& BlockedAddRequest::_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& BlockedAddRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.BlockedAddRequest.base)
  return _internal_base();
}
inline void BlockedAddRequest::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.relationship.BlockedAddRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* BlockedAddRequest::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* BlockedAddRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.BlockedAddRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* BlockedAddRequest::_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* BlockedAddRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.BlockedAddRequest.base)
  return _msg;
}
inline void BlockedAddRequest::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.relationship.BlockedAddRequest.base)
}

// .heroim.client.v3beta.dto.user.model.UserKey userKey = 2;
inline bool BlockedAddRequest::_internal_has_userkey() const {
  return this != internal_default_instance() && userkey_ != nullptr;
}
inline bool BlockedAddRequest::has_userkey() const {
  return _internal_has_userkey();
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& BlockedAddRequest::_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& BlockedAddRequest::userkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.BlockedAddRequest.userKey)
  return _internal_userkey();
}
inline void BlockedAddRequest::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.relationship.BlockedAddRequest.userKey)
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* BlockedAddRequest::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* BlockedAddRequest::unsafe_arena_release_userkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.BlockedAddRequest.userKey)
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* BlockedAddRequest::_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* BlockedAddRequest::mutable_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _msg = _internal_mutable_userkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.BlockedAddRequest.userKey)
  return _msg;
}
inline void BlockedAddRequest::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.relationship.BlockedAddRequest.userKey)
}

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

// BlockedAddResponse

// .heroim.client.v3beta.dto.relationship.UserBlockedItem blocked = 1;
inline bool BlockedAddResponse::_internal_has_blocked() const {
  return this != internal_default_instance() && blocked_ != nullptr;
}
inline bool BlockedAddResponse::has_blocked() const {
  return _internal_has_blocked();
}
inline void BlockedAddResponse::clear_blocked() {
  if (GetArenaForAllocation() == nullptr && blocked_ != nullptr) {
    delete blocked_;
  }
  blocked_ = nullptr;
}
inline const ::heroim::client::v3beta::dto::relationship::UserBlockedItem& BlockedAddResponse::_internal_blocked() const {
  const ::heroim::client::v3beta::dto::relationship::UserBlockedItem* p = blocked_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::relationship::UserBlockedItem&>(
      ::heroim::client::v3beta::dto::relationship::_UserBlockedItem_default_instance_);
}
inline const ::heroim::client::v3beta::dto::relationship::UserBlockedItem& BlockedAddResponse::blocked() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.BlockedAddResponse.blocked)
  return _internal_blocked();
}
inline void BlockedAddResponse::unsafe_arena_set_allocated_blocked(
    ::heroim::client::v3beta::dto::relationship::UserBlockedItem* blocked) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(blocked_);
  }
  blocked_ = blocked;
  if (blocked) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.relationship.BlockedAddResponse.blocked)
}
inline ::heroim::client::v3beta::dto::relationship::UserBlockedItem* BlockedAddResponse::release_blocked() {
  
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* temp = blocked_;
  blocked_ = 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::relationship::UserBlockedItem* BlockedAddResponse::unsafe_arena_release_blocked() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.BlockedAddResponse.blocked)
  
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* temp = blocked_;
  blocked_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::relationship::UserBlockedItem* BlockedAddResponse::_internal_mutable_blocked() {
  
  if (blocked_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::UserBlockedItem>(GetArenaForAllocation());
    blocked_ = p;
  }
  return blocked_;
}
inline ::heroim::client::v3beta::dto::relationship::UserBlockedItem* BlockedAddResponse::mutable_blocked() {
  ::heroim::client::v3beta::dto::relationship::UserBlockedItem* _msg = _internal_mutable_blocked();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.BlockedAddResponse.blocked)
  return _msg;
}
inline void BlockedAddResponse::set_allocated_blocked(::heroim::client::v3beta::dto::relationship::UserBlockedItem* blocked) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete blocked_;
  }
  if (blocked) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<::heroim::client::v3beta::dto::relationship::UserBlockedItem>::GetOwningArena(blocked);
    if (message_arena != submessage_arena) {
      blocked = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, blocked, submessage_arena);
    }
    
  } else {
    
  }
  blocked_ = blocked;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.BlockedAddResponse.blocked)
}

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

// BlockedDeleteRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool BlockedDeleteRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool BlockedDeleteRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& BlockedDeleteRequest::_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& BlockedDeleteRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.BlockedDeleteRequest.base)
  return _internal_base();
}
inline void BlockedDeleteRequest::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.relationship.BlockedDeleteRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* BlockedDeleteRequest::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* BlockedDeleteRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.BlockedDeleteRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* BlockedDeleteRequest::_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* BlockedDeleteRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.BlockedDeleteRequest.base)
  return _msg;
}
inline void BlockedDeleteRequest::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.relationship.BlockedDeleteRequest.base)
}

// .heroim.client.v3beta.dto.user.model.UserKey userKey = 2;
inline bool BlockedDeleteRequest::_internal_has_userkey() const {
  return this != internal_default_instance() && userkey_ != nullptr;
}
inline bool BlockedDeleteRequest::has_userkey() const {
  return _internal_has_userkey();
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& BlockedDeleteRequest::_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& BlockedDeleteRequest::userkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.BlockedDeleteRequest.userKey)
  return _internal_userkey();
}
inline void BlockedDeleteRequest::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.relationship.BlockedDeleteRequest.userKey)
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* BlockedDeleteRequest::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* BlockedDeleteRequest::unsafe_arena_release_userkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.BlockedDeleteRequest.userKey)
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* BlockedDeleteRequest::_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* BlockedDeleteRequest::mutable_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _msg = _internal_mutable_userkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.BlockedDeleteRequest.userKey)
  return _msg;
}
inline void BlockedDeleteRequest::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.relationship.BlockedDeleteRequest.userKey)
}

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

// BlockedDeleteResponse

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

// BlockedListRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool BlockedListRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool BlockedListRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& BlockedListRequest::_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& BlockedListRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.BlockedListRequest.base)
  return _internal_base();
}
inline void BlockedListRequest::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.relationship.BlockedListRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* BlockedListRequest::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* BlockedListRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.BlockedListRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* BlockedListRequest::_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* BlockedListRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.BlockedListRequest.base)
  return _msg;
}
inline void BlockedListRequest::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.relationship.BlockedListRequest.base)
}

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

// BlockedListResponse

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

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

// UserBlockedItem

// .heroim.client.v3beta.dto.user.model.User User = 1;
inline bool UserBlockedItem::_internal_has_user() const {
  return this != internal_default_instance() && user_ != nullptr;
}
inline bool UserBlockedItem::has_user() const {
  return _internal_has_user();
}
inline const ::heroim::client::v3beta::dto::user::model::User& UserBlockedItem::_internal_user() const {
  const ::heroim::client::v3beta::dto::user::model::User* p = user_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::user::model::User&>(
      ::heroim::client::v3beta::dto::user::model::_User_default_instance_);
}
inline const ::heroim::client::v3beta::dto::user::model::User& UserBlockedItem::user() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.UserBlockedItem.User)
  return _internal_user();
}
inline void UserBlockedItem::unsafe_arena_set_allocated_user(
    ::heroim::client::v3beta::dto::user::model::User* user) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(user_);
  }
  user_ = user;
  if (user) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.relationship.UserBlockedItem.User)
}
inline ::heroim::client::v3beta::dto::user::model::User* UserBlockedItem::release_user() {
  
  ::heroim::client::v3beta::dto::user::model::User* temp = user_;
  user_ = 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::User* UserBlockedItem::unsafe_arena_release_user() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.UserBlockedItem.User)
  
  ::heroim::client::v3beta::dto::user::model::User* temp = user_;
  user_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::User* UserBlockedItem::_internal_mutable_user() {
  
  if (user_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::user::model::User>(GetArenaForAllocation());
    user_ = p;
  }
  return user_;
}
inline ::heroim::client::v3beta::dto::user::model::User* UserBlockedItem::mutable_user() {
  ::heroim::client::v3beta::dto::user::model::User* _msg = _internal_mutable_user();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.UserBlockedItem.User)
  return _msg;
}
inline void UserBlockedItem::set_allocated_user(::heroim::client::v3beta::dto::user::model::User* user) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(user_);
  }
  if (user) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(user));
    if (message_arena != submessage_arena) {
      user = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, user, submessage_arena);
    }
    
  } else {
    
  }
  user_ = user;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.UserBlockedItem.User)
}

// .heroim.client.v3beta.dto.relationship.model.UserBlocked blocked = 2;
inline bool UserBlockedItem::_internal_has_blocked() const {
  return this != internal_default_instance() && blocked_ != nullptr;
}
inline bool UserBlockedItem::has_blocked() const {
  return _internal_has_blocked();
}
inline const ::heroim::client::v3beta::dto::relationship::model::UserBlocked& UserBlockedItem::_internal_blocked() const {
  const ::heroim::client::v3beta::dto::relationship::model::UserBlocked* p = blocked_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::relationship::model::UserBlocked&>(
      ::heroim::client::v3beta::dto::relationship::model::_UserBlocked_default_instance_);
}
inline const ::heroim::client::v3beta::dto::relationship::model::UserBlocked& UserBlockedItem::blocked() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.UserBlockedItem.blocked)
  return _internal_blocked();
}
inline void UserBlockedItem::unsafe_arena_set_allocated_blocked(
    ::heroim::client::v3beta::dto::relationship::model::UserBlocked* blocked) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(blocked_);
  }
  blocked_ = blocked;
  if (blocked) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.relationship.UserBlockedItem.blocked)
}
inline ::heroim::client::v3beta::dto::relationship::model::UserBlocked* UserBlockedItem::release_blocked() {
  
  ::heroim::client::v3beta::dto::relationship::model::UserBlocked* temp = blocked_;
  blocked_ = 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::relationship::model::UserBlocked* UserBlockedItem::unsafe_arena_release_blocked() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.UserBlockedItem.blocked)
  
  ::heroim::client::v3beta::dto::relationship::model::UserBlocked* temp = blocked_;
  blocked_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::relationship::model::UserBlocked* UserBlockedItem::_internal_mutable_blocked() {
  
  if (blocked_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::relationship::model::UserBlocked>(GetArenaForAllocation());
    blocked_ = p;
  }
  return blocked_;
}
inline ::heroim::client::v3beta::dto::relationship::model::UserBlocked* UserBlockedItem::mutable_blocked() {
  ::heroim::client::v3beta::dto::relationship::model::UserBlocked* _msg = _internal_mutable_blocked();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.UserBlockedItem.blocked)
  return _msg;
}
inline void UserBlockedItem::set_allocated_blocked(::heroim::client::v3beta::dto::relationship::model::UserBlocked* blocked) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(blocked_);
  }
  if (blocked) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(blocked));
    if (message_arena != submessage_arena) {
      blocked = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, blocked, submessage_arena);
    }
    
  } else {
    
  }
  blocked_ = blocked;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.UserBlockedItem.blocked)
}

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

// FriendApplyListRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool FriendApplyListRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool FriendApplyListRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& FriendApplyListRequest::_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& FriendApplyListRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyListRequest.base)
  return _internal_base();
}
inline void FriendApplyListRequest::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.relationship.FriendApplyListRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendApplyListRequest::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* FriendApplyListRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendApplyListRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendApplyListRequest::_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* FriendApplyListRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendApplyListRequest.base)
  return _msg;
}
inline void FriendApplyListRequest::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.relationship.FriendApplyListRequest.base)
}

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

// FriendApplyListResponse

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

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

// FriendApplyListResponseItem

// .heroim.client.v3beta.dto.user.model.User user = 1;
inline bool FriendApplyListResponseItem::_internal_has_user() const {
  return this != internal_default_instance() && user_ != nullptr;
}
inline bool FriendApplyListResponseItem::has_user() const {
  return _internal_has_user();
}
inline const ::heroim::client::v3beta::dto::user::model::User& FriendApplyListResponseItem::_internal_user() const {
  const ::heroim::client::v3beta::dto::user::model::User* p = user_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::user::model::User&>(
      ::heroim::client::v3beta::dto::user::model::_User_default_instance_);
}
inline const ::heroim::client::v3beta::dto::user::model::User& FriendApplyListResponseItem::user() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.user)
  return _internal_user();
}
inline void FriendApplyListResponseItem::unsafe_arena_set_allocated_user(
    ::heroim::client::v3beta::dto::user::model::User* user) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(user_);
  }
  user_ = user;
  if (user) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.user)
}
inline ::heroim::client::v3beta::dto::user::model::User* FriendApplyListResponseItem::release_user() {
  
  ::heroim::client::v3beta::dto::user::model::User* temp = user_;
  user_ = 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::User* FriendApplyListResponseItem::unsafe_arena_release_user() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.user)
  
  ::heroim::client::v3beta::dto::user::model::User* temp = user_;
  user_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::User* FriendApplyListResponseItem::_internal_mutable_user() {
  
  if (user_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::user::model::User>(GetArenaForAllocation());
    user_ = p;
  }
  return user_;
}
inline ::heroim::client::v3beta::dto::user::model::User* FriendApplyListResponseItem::mutable_user() {
  ::heroim::client::v3beta::dto::user::model::User* _msg = _internal_mutable_user();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.user)
  return _msg;
}
inline void FriendApplyListResponseItem::set_allocated_user(::heroim::client::v3beta::dto::user::model::User* user) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(user_);
  }
  if (user) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(user));
    if (message_arena != submessage_arena) {
      user = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, user, submessage_arena);
    }
    
  } else {
    
  }
  user_ = user;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.user)
}

// int64 applyTime = 2;
inline void FriendApplyListResponseItem::clear_applytime() {
  applytime_ = int64_t{0};
}
inline ::herogoogle::protobuf::int64 FriendApplyListResponseItem::_internal_applytime() const {
  return applytime_;
}
inline ::herogoogle::protobuf::int64 FriendApplyListResponseItem::applytime() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.applyTime)
  return _internal_applytime();
}
inline void FriendApplyListResponseItem::_internal_set_applytime(::herogoogle::protobuf::int64 value) {
  
  applytime_ = value;
}
inline void FriendApplyListResponseItem::set_applytime(::herogoogle::protobuf::int64 value) {
  _internal_set_applytime(value);
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.applyTime)
}

// string actToken = 3;
inline void FriendApplyListResponseItem::clear_acttoken() {
  acttoken_.ClearToEmpty();
}
inline const std::string& FriendApplyListResponseItem::acttoken() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.actToken)
  return _internal_acttoken();
}
template <typename ArgT0, typename... ArgT>
inline GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE
void FriendApplyListResponseItem::set_acttoken(ArgT0&& arg0, ArgT... args) {
 
 acttoken_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.actToken)
}
inline std::string* FriendApplyListResponseItem::mutable_acttoken() {
  std::string* _s = _internal_mutable_acttoken();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.actToken)
  return _s;
}
inline const std::string& FriendApplyListResponseItem::_internal_acttoken() const {
  return acttoken_.Get();
}
inline void FriendApplyListResponseItem::_internal_set_acttoken(const std::string& value) {
  
  acttoken_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* FriendApplyListResponseItem::_internal_mutable_acttoken() {
  
  return acttoken_.Mutable(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* FriendApplyListResponseItem::release_acttoken() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.actToken)
  return acttoken_.Release(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
}
inline void FriendApplyListResponseItem::set_allocated_acttoken(std::string* acttoken) {
  if (acttoken != nullptr) {
    
  } else {
    
  }
  acttoken_.SetAllocated(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(), acttoken,
      GetArenaForAllocation());
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.relationship.FriendApplyListResponseItem.actToken)
}

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

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

// FriendUpdateRequest

// .heroim.client.v3beta.dto.shared.APIRequest base = 1;
inline bool FriendUpdateRequest::_internal_has_base() const {
  return this != internal_default_instance() && base_ != nullptr;
}
inline bool FriendUpdateRequest::has_base() const {
  return _internal_has_base();
}
inline const ::heroim::client::v3beta::dto::shared::APIRequest& FriendUpdateRequest::_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& FriendUpdateRequest::base() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendUpdateRequest.base)
  return _internal_base();
}
inline void FriendUpdateRequest::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.relationship.FriendUpdateRequest.base)
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendUpdateRequest::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* FriendUpdateRequest::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendUpdateRequest.base)
  
  ::heroim::client::v3beta::dto::shared::APIRequest* temp = base_;
  base_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::shared::APIRequest* FriendUpdateRequest::_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* FriendUpdateRequest::mutable_base() {
  ::heroim::client::v3beta::dto::shared::APIRequest* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendUpdateRequest.base)
  return _msg;
}
inline void FriendUpdateRequest::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.relationship.FriendUpdateRequest.base)
}

// .heroim.client.v3beta.dto.user.model.UserKey userKey = 2;
inline bool FriendUpdateRequest::_internal_has_userkey() const {
  return this != internal_default_instance() && userkey_ != nullptr;
}
inline bool FriendUpdateRequest::has_userkey() const {
  return _internal_has_userkey();
}
inline const ::heroim::client::v3beta::dto::user::model::UserKey& FriendUpdateRequest::_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& FriendUpdateRequest::userkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.relationship.FriendUpdateRequest.userKey)
  return _internal_userkey();
}
inline void FriendUpdateRequest::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.relationship.FriendUpdateRequest.userKey)
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendUpdateRequest::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* FriendUpdateRequest::unsafe_arena_release_userkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.relationship.FriendUpdateRequest.userKey)
  
  ::heroim::client::v3beta::dto::user::model::UserKey* temp = userkey_;
  userkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::UserKey* FriendUpdateRequest::_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* FriendUpdateRequest::mutable_userkey() {
  ::heroim::client::v3beta::dto::user::model::UserKey* _msg = _internal_mutable_userkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.relationship.FriendUpdateRequest.userKey)
  return _msg;
}
inline void FriendUpdateRequest::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.relationship.FriendUpdateRequest.userKey)
}

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

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

// FriendUpdateResponse

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace relationship
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim

// @@protoc_insertion_point(global_scope)


#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2frelationship_2frelationship_5fdto_2eproto
