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

#ifndef GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2fmessage_2fsession_5fdto_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2fmessage_2fsession_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/generated_enum_reflection.h>
#include <herogoogle/protobuf/unknown_field_set.h>
#include "client/v3beta/dto/message/model/message_model.pb.h"
#include "client/v3beta/dto/user/model/user_model.pb.h"
#include "client/v3beta/dto/group/model/group_model.pb.h"
#include "client/v3beta/dto/channel/model/channel_model.pb.h"
#include "client/v3beta/dto/shared/api.pb.h"
// @@protoc_insertion_point(includes)

#define PROTOBUF_INTERNAL_EXPORT_client_2fv3beta_2fdto_2fmessage_2fsession_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_2fmessage_2fsession_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[7]
    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_2fmessage_2fsession_5fdto_2eproto;
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace message {
class SessionDeleteRequest;
struct SessionDeleteRequestDefaultTypeInternal;
extern SessionDeleteRequestDefaultTypeInternal _SessionDeleteRequest_default_instance_;
class SessionDeleteResponse;
struct SessionDeleteResponseDefaultTypeInternal;
extern SessionDeleteResponseDefaultTypeInternal _SessionDeleteResponse_default_instance_;
class SessionListItem;
struct SessionListItemDefaultTypeInternal;
extern SessionListItemDefaultTypeInternal _SessionListItem_default_instance_;
class SessionListRequest;
struct SessionListRequestDefaultTypeInternal;
extern SessionListRequestDefaultTypeInternal _SessionListRequest_default_instance_;
class SessionListResponse;
struct SessionListResponseDefaultTypeInternal;
extern SessionListResponseDefaultTypeInternal _SessionListResponse_default_instance_;
class SessionSortRequest;
struct SessionSortRequestDefaultTypeInternal;
extern SessionSortRequestDefaultTypeInternal _SessionSortRequest_default_instance_;
class SessionSortResponse;
struct SessionSortResponseDefaultTypeInternal;
extern SessionSortResponseDefaultTypeInternal _SessionSortResponse_default_instance_;
}  // namespace message
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim
PROTOBUF_NAMESPACE_OPEN
template<> ::heroim::client::v3beta::dto::message::SessionDeleteRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::message::SessionDeleteRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::message::SessionDeleteResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::message::SessionDeleteResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::message::SessionListItem* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::message::SessionListItem>(Arena*);
template<> ::heroim::client::v3beta::dto::message::SessionListRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::message::SessionListRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::message::SessionListResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::message::SessionListResponse>(Arena*);
template<> ::heroim::client::v3beta::dto::message::SessionSortRequest* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::message::SessionSortRequest>(Arena*);
template<> ::heroim::client::v3beta::dto::message::SessionSortResponse* Arena::CreateMaybeMessage<::heroim::client::v3beta::dto::message::SessionSortResponse>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace message {

enum SessionSortRequest_Status : int {
  SessionSortRequest_Status_Disable = 0,
  SessionSortRequest_Status_Enable = 1,
  SessionSortRequest_Status_SessionSortRequest_Status_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::herogoogle::protobuf::int32>::min(),
  SessionSortRequest_Status_SessionSortRequest_Status_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::herogoogle::protobuf::int32>::max()
};
bool SessionSortRequest_Status_IsValid(int value);
constexpr SessionSortRequest_Status SessionSortRequest_Status_Status_MIN = SessionSortRequest_Status_Disable;
constexpr SessionSortRequest_Status SessionSortRequest_Status_Status_MAX = SessionSortRequest_Status_Enable;
constexpr int SessionSortRequest_Status_Status_ARRAYSIZE = SessionSortRequest_Status_Status_MAX + 1;

const ::herogoogle::protobuf::EnumDescriptor* SessionSortRequest_Status_descriptor();
template<typename T>
inline const std::string& SessionSortRequest_Status_Name(T enum_t_value) {
  static_assert(::std::is_same<T, SessionSortRequest_Status>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function SessionSortRequest_Status_Name.");
  return ::herogoogle::protobuf::internal::NameOfEnum(
    SessionSortRequest_Status_descriptor(), enum_t_value);
}
inline bool SessionSortRequest_Status_Parse(
    ::herogoogle::protobuf::ConstStringParam name, SessionSortRequest_Status* value) {
  return ::herogoogle::protobuf::internal::ParseNamedEnum<SessionSortRequest_Status>(
    SessionSortRequest_Status_descriptor(), name, value);
}
enum QueryDirection : int {
  None = 0,
  Newest = 1,
  Oldest = 2,
  QueryDirection_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::herogoogle::protobuf::int32>::min(),
  QueryDirection_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::herogoogle::protobuf::int32>::max()
};
bool QueryDirection_IsValid(int value);
constexpr QueryDirection QueryDirection_MIN = None;
constexpr QueryDirection QueryDirection_MAX = Oldest;
constexpr int QueryDirection_ARRAYSIZE = QueryDirection_MAX + 1;

const ::herogoogle::protobuf::EnumDescriptor* QueryDirection_descriptor();
template<typename T>
inline const std::string& QueryDirection_Name(T enum_t_value) {
  static_assert(::std::is_same<T, QueryDirection>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function QueryDirection_Name.");
  return ::herogoogle::protobuf::internal::NameOfEnum(
    QueryDirection_descriptor(), enum_t_value);
}
inline bool QueryDirection_Parse(
    ::herogoogle::protobuf::ConstStringParam name, QueryDirection* value) {
  return ::herogoogle::protobuf::internal::ParseNamedEnum<QueryDirection>(
    QueryDirection_descriptor(), name, value);
}
// ===================================================================

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.message.SessionListResponse)
 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::message::SessionListItem > list_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fmessage_2fsession_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  SessionListItem* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<SessionListItem>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const SessionListItem& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const SessionListItem& 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(SessionListItem* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.message.SessionListItem";
  }
  protected:
  explicit SessionListItem(::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 {
    kSessionKeyFieldNumber = 1,
    kUserFieldNumber = 2,
    kGroupFieldNumber = 3,
    kLastFieldNumber = 4,
    kSortFieldNumber = 5,
    kChannelFieldNumber = 6,
    kUpdateTimeFieldNumber = 7,
  };
  // .heroim.client.v3beta.dto.message.model.SessionKey sessionKey = 1;
  bool has_sessionkey() const;
  private:
  bool _internal_has_sessionkey() const;
  public:
  void clear_sessionkey();
  const ::heroim::client::v3beta::dto::message::model::SessionKey& sessionkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::message::model::SessionKey* release_sessionkey();
  ::heroim::client::v3beta::dto::message::model::SessionKey* mutable_sessionkey();
  void set_allocated_sessionkey(::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey);
  private:
  const ::heroim::client::v3beta::dto::message::model::SessionKey& _internal_sessionkey() const;
  ::heroim::client::v3beta::dto::message::model::SessionKey* _internal_mutable_sessionkey();
  public:
  void unsafe_arena_set_allocated_sessionkey(
      ::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey);
  ::heroim::client::v3beta::dto::message::model::SessionKey* unsafe_arena_release_sessionkey();

  // .heroim.client.v3beta.dto.user.model.User user = 2;
  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.group.model.Group group = 3;
  bool has_group() const;
  private:
  bool _internal_has_group() const;
  public:
  void clear_group();
  const ::heroim::client::v3beta::dto::group::model::Group& group() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::group::model::Group* release_group();
  ::heroim::client::v3beta::dto::group::model::Group* mutable_group();
  void set_allocated_group(::heroim::client::v3beta::dto::group::model::Group* group);
  private:
  const ::heroim::client::v3beta::dto::group::model::Group& _internal_group() const;
  ::heroim::client::v3beta::dto::group::model::Group* _internal_mutable_group();
  public:
  void unsafe_arena_set_allocated_group(
      ::heroim::client::v3beta::dto::group::model::Group* group);
  ::heroim::client::v3beta::dto::group::model::Group* unsafe_arena_release_group();

  // .heroim.client.v3beta.dto.message.model.Message last = 4;
  bool has_last() const;
  private:
  bool _internal_has_last() const;
  public:
  void clear_last();
  const ::heroim::client::v3beta::dto::message::model::Message& last() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::message::model::Message* release_last();
  ::heroim::client::v3beta::dto::message::model::Message* mutable_last();
  void set_allocated_last(::heroim::client::v3beta::dto::message::model::Message* last);
  private:
  const ::heroim::client::v3beta::dto::message::model::Message& _internal_last() const;
  ::heroim::client::v3beta::dto::message::model::Message* _internal_mutable_last();
  public:
  void unsafe_arena_set_allocated_last(
      ::heroim::client::v3beta::dto::message::model::Message* last);
  ::heroim::client::v3beta::dto::message::model::Message* unsafe_arena_release_last();

  // .heroim.client.v3beta.dto.message.model.UserSessionSort sort = 5;
  bool has_sort() const;
  private:
  bool _internal_has_sort() const;
  public:
  void clear_sort();
  const ::heroim::client::v3beta::dto::message::model::UserSessionSort& sort() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::message::model::UserSessionSort* release_sort();
  ::heroim::client::v3beta::dto::message::model::UserSessionSort* mutable_sort();
  void set_allocated_sort(::heroim::client::v3beta::dto::message::model::UserSessionSort* sort);
  private:
  const ::heroim::client::v3beta::dto::message::model::UserSessionSort& _internal_sort() const;
  ::heroim::client::v3beta::dto::message::model::UserSessionSort* _internal_mutable_sort();
  public:
  void unsafe_arena_set_allocated_sort(
      ::heroim::client::v3beta::dto::message::model::UserSessionSort* sort);
  ::heroim::client::v3beta::dto::message::model::UserSessionSort* unsafe_arena_release_sort();

  // .heroim.client.v3beta.dto.channel.model.Channel channel = 6;
  bool has_channel() const;
  private:
  bool _internal_has_channel() const;
  public:
  void clear_channel();
  const ::heroim::client::v3beta::dto::channel::model::Channel& channel() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::channel::model::Channel* release_channel();
  ::heroim::client::v3beta::dto::channel::model::Channel* mutable_channel();
  void set_allocated_channel(::heroim::client::v3beta::dto::channel::model::Channel* channel);
  private:
  const ::heroim::client::v3beta::dto::channel::model::Channel& _internal_channel() const;
  ::heroim::client::v3beta::dto::channel::model::Channel* _internal_mutable_channel();
  public:
  void unsafe_arena_set_allocated_channel(
      ::heroim::client::v3beta::dto::channel::model::Channel* channel);
  ::heroim::client::v3beta::dto::channel::model::Channel* unsafe_arena_release_channel();

  // int64 updateTime = 7;
  void clear_updatetime();
  ::herogoogle::protobuf::int64 updatetime() const;
  void set_updatetime(::herogoogle::protobuf::int64 value);
  private:
  ::herogoogle::protobuf::int64 _internal_updatetime() const;
  void _internal_set_updatetime(::herogoogle::protobuf::int64 value);
  public:

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

  template <typename T> friend class ::herogoogle::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey_;
  ::heroim::client::v3beta::dto::user::model::User* user_;
  ::heroim::client::v3beta::dto::group::model::Group* group_;
  ::heroim::client::v3beta::dto::message::model::Message* last_;
  ::heroim::client::v3beta::dto::message::model::UserSessionSort* sort_;
  ::heroim::client::v3beta::dto::channel::model::Channel* channel_;
  ::herogoogle::protobuf::int64 updatetime_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fmessage_2fsession_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  SessionDeleteRequest* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<SessionDeleteRequest>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const SessionDeleteRequest& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const SessionDeleteRequest& 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(SessionDeleteRequest* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.message.SessionDeleteRequest";
  }
  protected:
  explicit SessionDeleteRequest(::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,
    kSessionKeyFieldNumber = 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.message.model.SessionKey sessionKey = 2;
  bool has_sessionkey() const;
  private:
  bool _internal_has_sessionkey() const;
  public:
  void clear_sessionkey();
  const ::heroim::client::v3beta::dto::message::model::SessionKey& sessionkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::message::model::SessionKey* release_sessionkey();
  ::heroim::client::v3beta::dto::message::model::SessionKey* mutable_sessionkey();
  void set_allocated_sessionkey(::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey);
  private:
  const ::heroim::client::v3beta::dto::message::model::SessionKey& _internal_sessionkey() const;
  ::heroim::client::v3beta::dto::message::model::SessionKey* _internal_mutable_sessionkey();
  public:
  void unsafe_arena_set_allocated_sessionkey(
      ::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey);
  ::heroim::client::v3beta::dto::message::model::SessionKey* unsafe_arena_release_sessionkey();

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.message.SessionDeleteRequest)
 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::message::model::SessionKey* sessionkey_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fmessage_2fsession_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  typedef SessionSortRequest_Status Status;
  static constexpr Status Disable =
    SessionSortRequest_Status_Disable;
  static constexpr Status Enable =
    SessionSortRequest_Status_Enable;
  static inline bool Status_IsValid(int value) {
    return SessionSortRequest_Status_IsValid(value);
  }
  static constexpr Status Status_MIN =
    SessionSortRequest_Status_Status_MIN;
  static constexpr Status Status_MAX =
    SessionSortRequest_Status_Status_MAX;
  static constexpr int Status_ARRAYSIZE =
    SessionSortRequest_Status_Status_ARRAYSIZE;
  static inline const ::herogoogle::protobuf::EnumDescriptor*
  Status_descriptor() {
    return SessionSortRequest_Status_descriptor();
  }
  template<typename T>
  static inline const std::string& Status_Name(T enum_t_value) {
    static_assert(::std::is_same<T, Status>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function Status_Name.");
    return SessionSortRequest_Status_Name(enum_t_value);
  }
  static inline bool Status_Parse(::herogoogle::protobuf::ConstStringParam name,
      Status* value) {
    return SessionSortRequest_Status_Parse(name, value);
  }

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

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

  // .heroim.client.v3beta.dto.message.model.SessionKey sessionKey = 2;
  bool has_sessionkey() const;
  private:
  bool _internal_has_sessionkey() const;
  public:
  void clear_sessionkey();
  const ::heroim::client::v3beta::dto::message::model::SessionKey& sessionkey() const;
  PROTOBUF_MUST_USE_RESULT ::heroim::client::v3beta::dto::message::model::SessionKey* release_sessionkey();
  ::heroim::client::v3beta::dto::message::model::SessionKey* mutable_sessionkey();
  void set_allocated_sessionkey(::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey);
  private:
  const ::heroim::client::v3beta::dto::message::model::SessionKey& _internal_sessionkey() const;
  ::heroim::client::v3beta::dto::message::model::SessionKey* _internal_mutable_sessionkey();
  public:
  void unsafe_arena_set_allocated_sessionkey(
      ::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey);
  ::heroim::client::v3beta::dto::message::model::SessionKey* unsafe_arena_release_sessionkey();

  // .heroim.client.v3beta.dto.message.SessionSortRequest.Status status = 3;
  void clear_status();
  ::heroim::client::v3beta::dto::message::SessionSortRequest_Status status() const;
  void set_status(::heroim::client::v3beta::dto::message::SessionSortRequest_Status value);
  private:
  ::heroim::client::v3beta::dto::message::SessionSortRequest_Status _internal_status() const;
  void _internal_set_status(::heroim::client::v3beta::dto::message::SessionSortRequest_Status value);
  public:

  // @@protoc_insertion_point(class_scope:heroim.client.v3beta.dto.message.SessionSortRequest)
 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::message::model::SessionKey* sessionkey_;
  int status_;
  mutable ::herogoogle::protobuf::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_client_2fv3beta_2fdto_2fmessage_2fsession_5fdto_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  SessionSortResponse* New(::herogoogle::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<SessionSortResponse>(arena);
  }
  using ::herogoogle::protobuf::Message::CopyFrom;
  void CopyFrom(const SessionSortResponse& from);
  using ::herogoogle::protobuf::Message::MergeFrom;
  void MergeFrom(const SessionSortResponse& 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(SessionSortResponse* other);
  friend class ::herogoogle::protobuf::internal::AnyMetadata;
  static ::herogoogle::protobuf::StringPiece FullMessageName() {
    return "heroim.client.v3beta.dto.message.SessionSortResponse";
  }
  protected:
  explicit SessionSortResponse(::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 {
    kTimeFieldNumber = 1,
  };
  // int64 time = 1;
  void clear_time();
  ::herogoogle::protobuf::int64 time() const;
  void set_time(::herogoogle::protobuf::int64 value);
  private:
  ::herogoogle::protobuf::int64 _internal_time() const;
  void _internal_set_time(::herogoogle::protobuf::int64 value);
  public:

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

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


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

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

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

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

// SessionListResponse

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

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

// SessionListItem

// .heroim.client.v3beta.dto.message.model.SessionKey sessionKey = 1;
inline bool SessionListItem::_internal_has_sessionkey() const {
  return this != internal_default_instance() && sessionkey_ != nullptr;
}
inline bool SessionListItem::has_sessionkey() const {
  return _internal_has_sessionkey();
}
inline const ::heroim::client::v3beta::dto::message::model::SessionKey& SessionListItem::_internal_sessionkey() const {
  const ::heroim::client::v3beta::dto::message::model::SessionKey* p = sessionkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::message::model::SessionKey&>(
      ::heroim::client::v3beta::dto::message::model::_SessionKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::message::model::SessionKey& SessionListItem::sessionkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionListItem.sessionKey)
  return _internal_sessionkey();
}
inline void SessionListItem::unsafe_arena_set_allocated_sessionkey(
    ::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sessionkey_);
  }
  sessionkey_ = sessionkey;
  if (sessionkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.sessionKey)
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionListItem::release_sessionkey() {
  
  ::heroim::client::v3beta::dto::message::model::SessionKey* temp = sessionkey_;
  sessionkey_ = 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::message::model::SessionKey* SessionListItem::unsafe_arena_release_sessionkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.message.SessionListItem.sessionKey)
  
  ::heroim::client::v3beta::dto::message::model::SessionKey* temp = sessionkey_;
  sessionkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionListItem::_internal_mutable_sessionkey() {
  
  if (sessionkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::message::model::SessionKey>(GetArenaForAllocation());
    sessionkey_ = p;
  }
  return sessionkey_;
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionListItem::mutable_sessionkey() {
  ::heroim::client::v3beta::dto::message::model::SessionKey* _msg = _internal_mutable_sessionkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.message.SessionListItem.sessionKey)
  return _msg;
}
inline void SessionListItem::set_allocated_sessionkey(::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(sessionkey_);
  }
  if (sessionkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sessionkey));
    if (message_arena != submessage_arena) {
      sessionkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, sessionkey, submessage_arena);
    }
    
  } else {
    
  }
  sessionkey_ = sessionkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.sessionKey)
}

// .heroim.client.v3beta.dto.user.model.User user = 2;
inline bool SessionListItem::_internal_has_user() const {
  return this != internal_default_instance() && user_ != nullptr;
}
inline bool SessionListItem::has_user() const {
  return _internal_has_user();
}
inline const ::heroim::client::v3beta::dto::user::model::User& SessionListItem::_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& SessionListItem::user() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionListItem.user)
  return _internal_user();
}
inline void SessionListItem::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.message.SessionListItem.user)
}
inline ::heroim::client::v3beta::dto::user::model::User* SessionListItem::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* SessionListItem::unsafe_arena_release_user() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.message.SessionListItem.user)
  
  ::heroim::client::v3beta::dto::user::model::User* temp = user_;
  user_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::user::model::User* SessionListItem::_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* SessionListItem::mutable_user() {
  ::heroim::client::v3beta::dto::user::model::User* _msg = _internal_mutable_user();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.message.SessionListItem.user)
  return _msg;
}
inline void SessionListItem::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.message.SessionListItem.user)
}

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

// .heroim.client.v3beta.dto.message.model.Message last = 4;
inline bool SessionListItem::_internal_has_last() const {
  return this != internal_default_instance() && last_ != nullptr;
}
inline bool SessionListItem::has_last() const {
  return _internal_has_last();
}
inline const ::heroim::client::v3beta::dto::message::model::Message& SessionListItem::_internal_last() const {
  const ::heroim::client::v3beta::dto::message::model::Message* p = last_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::message::model::Message&>(
      ::heroim::client::v3beta::dto::message::model::_Message_default_instance_);
}
inline const ::heroim::client::v3beta::dto::message::model::Message& SessionListItem::last() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionListItem.last)
  return _internal_last();
}
inline void SessionListItem::unsafe_arena_set_allocated_last(
    ::heroim::client::v3beta::dto::message::model::Message* last) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(last_);
  }
  last_ = last;
  if (last) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.last)
}
inline ::heroim::client::v3beta::dto::message::model::Message* SessionListItem::release_last() {
  
  ::heroim::client::v3beta::dto::message::model::Message* temp = last_;
  last_ = 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::message::model::Message* SessionListItem::unsafe_arena_release_last() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.message.SessionListItem.last)
  
  ::heroim::client::v3beta::dto::message::model::Message* temp = last_;
  last_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::message::model::Message* SessionListItem::_internal_mutable_last() {
  
  if (last_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::message::model::Message>(GetArenaForAllocation());
    last_ = p;
  }
  return last_;
}
inline ::heroim::client::v3beta::dto::message::model::Message* SessionListItem::mutable_last() {
  ::heroim::client::v3beta::dto::message::model::Message* _msg = _internal_mutable_last();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.message.SessionListItem.last)
  return _msg;
}
inline void SessionListItem::set_allocated_last(::heroim::client::v3beta::dto::message::model::Message* last) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(last_);
  }
  if (last) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(last));
    if (message_arena != submessage_arena) {
      last = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, last, submessage_arena);
    }
    
  } else {
    
  }
  last_ = last;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.last)
}

// .heroim.client.v3beta.dto.message.model.UserSessionSort sort = 5;
inline bool SessionListItem::_internal_has_sort() const {
  return this != internal_default_instance() && sort_ != nullptr;
}
inline bool SessionListItem::has_sort() const {
  return _internal_has_sort();
}
inline const ::heroim::client::v3beta::dto::message::model::UserSessionSort& SessionListItem::_internal_sort() const {
  const ::heroim::client::v3beta::dto::message::model::UserSessionSort* p = sort_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::message::model::UserSessionSort&>(
      ::heroim::client::v3beta::dto::message::model::_UserSessionSort_default_instance_);
}
inline const ::heroim::client::v3beta::dto::message::model::UserSessionSort& SessionListItem::sort() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionListItem.sort)
  return _internal_sort();
}
inline void SessionListItem::unsafe_arena_set_allocated_sort(
    ::heroim::client::v3beta::dto::message::model::UserSessionSort* sort) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sort_);
  }
  sort_ = sort;
  if (sort) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.sort)
}
inline ::heroim::client::v3beta::dto::message::model::UserSessionSort* SessionListItem::release_sort() {
  
  ::heroim::client::v3beta::dto::message::model::UserSessionSort* temp = sort_;
  sort_ = 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::message::model::UserSessionSort* SessionListItem::unsafe_arena_release_sort() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.message.SessionListItem.sort)
  
  ::heroim::client::v3beta::dto::message::model::UserSessionSort* temp = sort_;
  sort_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::message::model::UserSessionSort* SessionListItem::_internal_mutable_sort() {
  
  if (sort_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::message::model::UserSessionSort>(GetArenaForAllocation());
    sort_ = p;
  }
  return sort_;
}
inline ::heroim::client::v3beta::dto::message::model::UserSessionSort* SessionListItem::mutable_sort() {
  ::heroim::client::v3beta::dto::message::model::UserSessionSort* _msg = _internal_mutable_sort();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.message.SessionListItem.sort)
  return _msg;
}
inline void SessionListItem::set_allocated_sort(::heroim::client::v3beta::dto::message::model::UserSessionSort* sort) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(sort_);
  }
  if (sort) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sort));
    if (message_arena != submessage_arena) {
      sort = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, sort, submessage_arena);
    }
    
  } else {
    
  }
  sort_ = sort;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.sort)
}

// .heroim.client.v3beta.dto.channel.model.Channel channel = 6;
inline bool SessionListItem::_internal_has_channel() const {
  return this != internal_default_instance() && channel_ != nullptr;
}
inline bool SessionListItem::has_channel() const {
  return _internal_has_channel();
}
inline const ::heroim::client::v3beta::dto::channel::model::Channel& SessionListItem::_internal_channel() const {
  const ::heroim::client::v3beta::dto::channel::model::Channel* p = channel_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::channel::model::Channel&>(
      ::heroim::client::v3beta::dto::channel::model::_Channel_default_instance_);
}
inline const ::heroim::client::v3beta::dto::channel::model::Channel& SessionListItem::channel() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionListItem.channel)
  return _internal_channel();
}
inline void SessionListItem::unsafe_arena_set_allocated_channel(
    ::heroim::client::v3beta::dto::channel::model::Channel* channel) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(channel_);
  }
  channel_ = channel;
  if (channel) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.channel)
}
inline ::heroim::client::v3beta::dto::channel::model::Channel* SessionListItem::release_channel() {
  
  ::heroim::client::v3beta::dto::channel::model::Channel* temp = channel_;
  channel_ = 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::channel::model::Channel* SessionListItem::unsafe_arena_release_channel() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.message.SessionListItem.channel)
  
  ::heroim::client::v3beta::dto::channel::model::Channel* temp = channel_;
  channel_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::channel::model::Channel* SessionListItem::_internal_mutable_channel() {
  
  if (channel_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::channel::model::Channel>(GetArenaForAllocation());
    channel_ = p;
  }
  return channel_;
}
inline ::heroim::client::v3beta::dto::channel::model::Channel* SessionListItem::mutable_channel() {
  ::heroim::client::v3beta::dto::channel::model::Channel* _msg = _internal_mutable_channel();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.message.SessionListItem.channel)
  return _msg;
}
inline void SessionListItem::set_allocated_channel(::heroim::client::v3beta::dto::channel::model::Channel* channel) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(channel_);
  }
  if (channel) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(channel));
    if (message_arena != submessage_arena) {
      channel = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, channel, submessage_arena);
    }
    
  } else {
    
  }
  channel_ = channel;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.message.SessionListItem.channel)
}

// int64 updateTime = 7;
inline void SessionListItem::clear_updatetime() {
  updatetime_ = int64_t{0};
}
inline ::herogoogle::protobuf::int64 SessionListItem::_internal_updatetime() const {
  return updatetime_;
}
inline ::herogoogle::protobuf::int64 SessionListItem::updatetime() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionListItem.updateTime)
  return _internal_updatetime();
}
inline void SessionListItem::_internal_set_updatetime(::herogoogle::protobuf::int64 value) {
  
  updatetime_ = value;
}
inline void SessionListItem::set_updatetime(::herogoogle::protobuf::int64 value) {
  _internal_set_updatetime(value);
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.message.SessionListItem.updateTime)
}

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

// SessionDeleteRequest

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

// .heroim.client.v3beta.dto.message.model.SessionKey sessionKey = 2;
inline bool SessionDeleteRequest::_internal_has_sessionkey() const {
  return this != internal_default_instance() && sessionkey_ != nullptr;
}
inline bool SessionDeleteRequest::has_sessionkey() const {
  return _internal_has_sessionkey();
}
inline const ::heroim::client::v3beta::dto::message::model::SessionKey& SessionDeleteRequest::_internal_sessionkey() const {
  const ::heroim::client::v3beta::dto::message::model::SessionKey* p = sessionkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::message::model::SessionKey&>(
      ::heroim::client::v3beta::dto::message::model::_SessionKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::message::model::SessionKey& SessionDeleteRequest::sessionkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionDeleteRequest.sessionKey)
  return _internal_sessionkey();
}
inline void SessionDeleteRequest::unsafe_arena_set_allocated_sessionkey(
    ::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sessionkey_);
  }
  sessionkey_ = sessionkey;
  if (sessionkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.message.SessionDeleteRequest.sessionKey)
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionDeleteRequest::release_sessionkey() {
  
  ::heroim::client::v3beta::dto::message::model::SessionKey* temp = sessionkey_;
  sessionkey_ = 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::message::model::SessionKey* SessionDeleteRequest::unsafe_arena_release_sessionkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.message.SessionDeleteRequest.sessionKey)
  
  ::heroim::client::v3beta::dto::message::model::SessionKey* temp = sessionkey_;
  sessionkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionDeleteRequest::_internal_mutable_sessionkey() {
  
  if (sessionkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::message::model::SessionKey>(GetArenaForAllocation());
    sessionkey_ = p;
  }
  return sessionkey_;
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionDeleteRequest::mutable_sessionkey() {
  ::heroim::client::v3beta::dto::message::model::SessionKey* _msg = _internal_mutable_sessionkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.message.SessionDeleteRequest.sessionKey)
  return _msg;
}
inline void SessionDeleteRequest::set_allocated_sessionkey(::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(sessionkey_);
  }
  if (sessionkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sessionkey));
    if (message_arena != submessage_arena) {
      sessionkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, sessionkey, submessage_arena);
    }
    
  } else {
    
  }
  sessionkey_ = sessionkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.message.SessionDeleteRequest.sessionKey)
}

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

// SessionDeleteResponse

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

// SessionSortRequest

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

// .heroim.client.v3beta.dto.message.model.SessionKey sessionKey = 2;
inline bool SessionSortRequest::_internal_has_sessionkey() const {
  return this != internal_default_instance() && sessionkey_ != nullptr;
}
inline bool SessionSortRequest::has_sessionkey() const {
  return _internal_has_sessionkey();
}
inline const ::heroim::client::v3beta::dto::message::model::SessionKey& SessionSortRequest::_internal_sessionkey() const {
  const ::heroim::client::v3beta::dto::message::model::SessionKey* p = sessionkey_;
  return p != nullptr ? *p : reinterpret_cast<const ::heroim::client::v3beta::dto::message::model::SessionKey&>(
      ::heroim::client::v3beta::dto::message::model::_SessionKey_default_instance_);
}
inline const ::heroim::client::v3beta::dto::message::model::SessionKey& SessionSortRequest::sessionkey() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionSortRequest.sessionKey)
  return _internal_sessionkey();
}
inline void SessionSortRequest::unsafe_arena_set_allocated_sessionkey(
    ::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sessionkey_);
  }
  sessionkey_ = sessionkey;
  if (sessionkey) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:heroim.client.v3beta.dto.message.SessionSortRequest.sessionKey)
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionSortRequest::release_sessionkey() {
  
  ::heroim::client::v3beta::dto::message::model::SessionKey* temp = sessionkey_;
  sessionkey_ = 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::message::model::SessionKey* SessionSortRequest::unsafe_arena_release_sessionkey() {
  // @@protoc_insertion_point(field_release:heroim.client.v3beta.dto.message.SessionSortRequest.sessionKey)
  
  ::heroim::client::v3beta::dto::message::model::SessionKey* temp = sessionkey_;
  sessionkey_ = nullptr;
  return temp;
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionSortRequest::_internal_mutable_sessionkey() {
  
  if (sessionkey_ == nullptr) {
    auto* p = CreateMaybeMessage<::heroim::client::v3beta::dto::message::model::SessionKey>(GetArenaForAllocation());
    sessionkey_ = p;
  }
  return sessionkey_;
}
inline ::heroim::client::v3beta::dto::message::model::SessionKey* SessionSortRequest::mutable_sessionkey() {
  ::heroim::client::v3beta::dto::message::model::SessionKey* _msg = _internal_mutable_sessionkey();
  // @@protoc_insertion_point(field_mutable:heroim.client.v3beta.dto.message.SessionSortRequest.sessionKey)
  return _msg;
}
inline void SessionSortRequest::set_allocated_sessionkey(::heroim::client::v3beta::dto::message::model::SessionKey* sessionkey) {
  ::herogoogle::protobuf::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::herogoogle::protobuf::MessageLite*>(sessionkey_);
  }
  if (sessionkey) {
    ::herogoogle::protobuf::Arena* submessage_arena =
        ::herogoogle::protobuf::Arena::InternalHelper<
            ::herogoogle::protobuf::MessageLite>::GetOwningArena(
                reinterpret_cast<::herogoogle::protobuf::MessageLite*>(sessionkey));
    if (message_arena != submessage_arena) {
      sessionkey = ::herogoogle::protobuf::internal::GetOwnedMessage(
          message_arena, sessionkey, submessage_arena);
    }
    
  } else {
    
  }
  sessionkey_ = sessionkey;
  // @@protoc_insertion_point(field_set_allocated:heroim.client.v3beta.dto.message.SessionSortRequest.sessionKey)
}

// .heroim.client.v3beta.dto.message.SessionSortRequest.Status status = 3;
inline void SessionSortRequest::clear_status() {
  status_ = 0;
}
inline ::heroim::client::v3beta::dto::message::SessionSortRequest_Status SessionSortRequest::_internal_status() const {
  return static_cast< ::heroim::client::v3beta::dto::message::SessionSortRequest_Status >(status_);
}
inline ::heroim::client::v3beta::dto::message::SessionSortRequest_Status SessionSortRequest::status() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionSortRequest.status)
  return _internal_status();
}
inline void SessionSortRequest::_internal_set_status(::heroim::client::v3beta::dto::message::SessionSortRequest_Status value) {
  
  status_ = value;
}
inline void SessionSortRequest::set_status(::heroim::client::v3beta::dto::message::SessionSortRequest_Status value) {
  _internal_set_status(value);
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.message.SessionSortRequest.status)
}

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

// SessionSortResponse

// int64 time = 1;
inline void SessionSortResponse::clear_time() {
  time_ = int64_t{0};
}
inline ::herogoogle::protobuf::int64 SessionSortResponse::_internal_time() const {
  return time_;
}
inline ::herogoogle::protobuf::int64 SessionSortResponse::time() const {
  // @@protoc_insertion_point(field_get:heroim.client.v3beta.dto.message.SessionSortResponse.time)
  return _internal_time();
}
inline void SessionSortResponse::_internal_set_time(::herogoogle::protobuf::int64 value) {
  
  time_ = value;
}
inline void SessionSortResponse::set_time(::herogoogle::protobuf::int64 value) {
  _internal_set_time(value);
  // @@protoc_insertion_point(field_set:heroim.client.v3beta.dto.message.SessionSortResponse.time)
}

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace message
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::heroim::client::v3beta::dto::message::SessionSortRequest_Status> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::heroim::client::v3beta::dto::message::SessionSortRequest_Status>() {
  return ::heroim::client::v3beta::dto::message::SessionSortRequest_Status_descriptor();
}
template <> struct is_proto_enum< ::heroim::client::v3beta::dto::message::QueryDirection> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::heroim::client::v3beta::dto::message::QueryDirection>() {
  return ::heroim::client::v3beta::dto::message::QueryDirection_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)


#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_client_2fv3beta_2fdto_2fmessage_2fsession_5fdto_2eproto
