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

#ifndef GOOGLE_PROTOBUF_INCLUDED_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto_2epb_2eh

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

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

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

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

#define PROTOBUF_INTERNAL_EXPORT_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto

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

// Internal implementation detail -- do not use these members.
struct TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto {
  static const ::uint32_t offsets[];
};
namespace keyapis {
namespace notification {
namespace v1 {
class DeletePushTokenRequest;
struct DeletePushTokenRequestDefaultTypeInternal;
extern DeletePushTokenRequestDefaultTypeInternal _DeletePushTokenRequest_default_instance_;
class DeletePushTokenResponse;
struct DeletePushTokenResponseDefaultTypeInternal;
extern DeletePushTokenResponseDefaultTypeInternal _DeletePushTokenResponse_default_instance_;
class DeletePushTokenResponse_Error;
struct DeletePushTokenResponse_ErrorDefaultTypeInternal;
extern DeletePushTokenResponse_ErrorDefaultTypeInternal _DeletePushTokenResponse_Error_default_instance_;
class DeletePushTokenUserAppIdRequest;
struct DeletePushTokenUserAppIdRequestDefaultTypeInternal;
extern DeletePushTokenUserAppIdRequestDefaultTypeInternal _DeletePushTokenUserAppIdRequest_default_instance_;
class DeletePushTokenUserAppIdResponse;
struct DeletePushTokenUserAppIdResponseDefaultTypeInternal;
extern DeletePushTokenUserAppIdResponseDefaultTypeInternal _DeletePushTokenUserAppIdResponse_default_instance_;
class DeletePushTokenUserAppIdResponse_Error;
struct DeletePushTokenUserAppIdResponse_ErrorDefaultTypeInternal;
extern DeletePushTokenUserAppIdResponse_ErrorDefaultTypeInternal _DeletePushTokenUserAppIdResponse_Error_default_instance_;
class DeletePushTokenUserIdRequest;
struct DeletePushTokenUserIdRequestDefaultTypeInternal;
extern DeletePushTokenUserIdRequestDefaultTypeInternal _DeletePushTokenUserIdRequest_default_instance_;
class DeletePushTokenUserIdResponse;
struct DeletePushTokenUserIdResponseDefaultTypeInternal;
extern DeletePushTokenUserIdResponseDefaultTypeInternal _DeletePushTokenUserIdResponse_default_instance_;
class DeletePushTokenUserIdResponse_Error;
struct DeletePushTokenUserIdResponse_ErrorDefaultTypeInternal;
extern DeletePushTokenUserIdResponse_ErrorDefaultTypeInternal _DeletePushTokenUserIdResponse_Error_default_instance_;
class GetPushTokenCountRequest;
struct GetPushTokenCountRequestDefaultTypeInternal;
extern GetPushTokenCountRequestDefaultTypeInternal _GetPushTokenCountRequest_default_instance_;
class GetPushTokenCountResponse;
struct GetPushTokenCountResponseDefaultTypeInternal;
extern GetPushTokenCountResponseDefaultTypeInternal _GetPushTokenCountResponse_default_instance_;
class GetPushTokenCountResponse_Error;
struct GetPushTokenCountResponse_ErrorDefaultTypeInternal;
extern GetPushTokenCountResponse_ErrorDefaultTypeInternal _GetPushTokenCountResponse_Error_default_instance_;
class GetPushTokenListRequest;
struct GetPushTokenListRequestDefaultTypeInternal;
extern GetPushTokenListRequestDefaultTypeInternal _GetPushTokenListRequest_default_instance_;
class GetPushTokenListResponse;
struct GetPushTokenListResponseDefaultTypeInternal;
extern GetPushTokenListResponseDefaultTypeInternal _GetPushTokenListResponse_default_instance_;
class GetPushTokenListResponse_Error;
struct GetPushTokenListResponse_ErrorDefaultTypeInternal;
extern GetPushTokenListResponse_ErrorDefaultTypeInternal _GetPushTokenListResponse_Error_default_instance_;
class PostPushTokenRequest;
struct PostPushTokenRequestDefaultTypeInternal;
extern PostPushTokenRequestDefaultTypeInternal _PostPushTokenRequest_default_instance_;
class PostPushTokenResponse;
struct PostPushTokenResponseDefaultTypeInternal;
extern PostPushTokenResponseDefaultTypeInternal _PostPushTokenResponse_default_instance_;
class PostPushTokenResponse_Error;
struct PostPushTokenResponse_ErrorDefaultTypeInternal;
extern PostPushTokenResponse_ErrorDefaultTypeInternal _PostPushTokenResponse_Error_default_instance_;
class PushToken;
struct PushTokenDefaultTypeInternal;
extern PushTokenDefaultTypeInternal _PushToken_default_instance_;
class PushTokenFilter;
struct PushTokenFilterDefaultTypeInternal;
extern PushTokenFilterDefaultTypeInternal _PushTokenFilter_default_instance_;
class PushTokenFilter_ValidationError;
struct PushTokenFilter_ValidationErrorDefaultTypeInternal;
extern PushTokenFilter_ValidationErrorDefaultTypeInternal _PushTokenFilter_ValidationError_default_instance_;
class PushTokenFilter_ValidationError_UserAppIdsInvalid;
struct PushTokenFilter_ValidationError_UserAppIdsInvalidDefaultTypeInternal;
extern PushTokenFilter_ValidationError_UserAppIdsInvalidDefaultTypeInternal _PushTokenFilter_ValidationError_UserAppIdsInvalid_default_instance_;
class PushTokenPaging;
struct PushTokenPagingDefaultTypeInternal;
extern PushTokenPagingDefaultTypeInternal _PushTokenPaging_default_instance_;
class PushTokenPaging_ValidationError;
struct PushTokenPaging_ValidationErrorDefaultTypeInternal;
extern PushTokenPaging_ValidationErrorDefaultTypeInternal _PushTokenPaging_ValidationError_default_instance_;
class PushTokenPaging_ValidationError_LimitInvalid;
struct PushTokenPaging_ValidationError_LimitInvalidDefaultTypeInternal;
extern PushTokenPaging_ValidationError_LimitInvalidDefaultTypeInternal _PushTokenPaging_ValidationError_LimitInvalid_default_instance_;
class PushTokenPaging_ValidationError_OffsetInvalid;
struct PushTokenPaging_ValidationError_OffsetInvalidDefaultTypeInternal;
extern PushTokenPaging_ValidationError_OffsetInvalidDefaultTypeInternal _PushTokenPaging_ValidationError_OffsetInvalid_default_instance_;
class PushToken_SavingError;
struct PushToken_SavingErrorDefaultTypeInternal;
extern PushToken_SavingErrorDefaultTypeInternal _PushToken_SavingError_default_instance_;
class PushToken_SavingError_Conflict;
struct PushToken_SavingError_ConflictDefaultTypeInternal;
extern PushToken_SavingError_ConflictDefaultTypeInternal _PushToken_SavingError_Conflict_default_instance_;
class PushToken_SavingError_UserAppIdExists;
struct PushToken_SavingError_UserAppIdExistsDefaultTypeInternal;
extern PushToken_SavingError_UserAppIdExistsDefaultTypeInternal _PushToken_SavingError_UserAppIdExists_default_instance_;
class PushToken_ValidationError;
struct PushToken_ValidationErrorDefaultTypeInternal;
extern PushToken_ValidationErrorDefaultTypeInternal _PushToken_ValidationError_default_instance_;
class PushToken_ValidationError_UserAppIdInvalid;
struct PushToken_ValidationError_UserAppIdInvalidDefaultTypeInternal;
extern PushToken_ValidationError_UserAppIdInvalidDefaultTypeInternal _PushToken_ValidationError_UserAppIdInvalid_default_instance_;
class ValidationError;
struct ValidationErrorDefaultTypeInternal;
extern ValidationErrorDefaultTypeInternal _ValidationError_default_instance_;
}  // namespace v1
}  // namespace notification
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template <>
::keyapis::notification::v1::DeletePushTokenRequest* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenRequest>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenResponse* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenResponse>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenResponse_Error* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenResponse_Error>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenUserAppIdRequest* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenUserAppIdRequest>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenUserAppIdResponse* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenUserAppIdResponse>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenUserIdRequest* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenUserIdRequest>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenUserIdResponse* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenUserIdResponse>(Arena*);
template <>
::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error* Arena::CreateMaybeMessage<::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error>(Arena*);
template <>
::keyapis::notification::v1::GetPushTokenCountRequest* Arena::CreateMaybeMessage<::keyapis::notification::v1::GetPushTokenCountRequest>(Arena*);
template <>
::keyapis::notification::v1::GetPushTokenCountResponse* Arena::CreateMaybeMessage<::keyapis::notification::v1::GetPushTokenCountResponse>(Arena*);
template <>
::keyapis::notification::v1::GetPushTokenCountResponse_Error* Arena::CreateMaybeMessage<::keyapis::notification::v1::GetPushTokenCountResponse_Error>(Arena*);
template <>
::keyapis::notification::v1::GetPushTokenListRequest* Arena::CreateMaybeMessage<::keyapis::notification::v1::GetPushTokenListRequest>(Arena*);
template <>
::keyapis::notification::v1::GetPushTokenListResponse* Arena::CreateMaybeMessage<::keyapis::notification::v1::GetPushTokenListResponse>(Arena*);
template <>
::keyapis::notification::v1::GetPushTokenListResponse_Error* Arena::CreateMaybeMessage<::keyapis::notification::v1::GetPushTokenListResponse_Error>(Arena*);
template <>
::keyapis::notification::v1::PostPushTokenRequest* Arena::CreateMaybeMessage<::keyapis::notification::v1::PostPushTokenRequest>(Arena*);
template <>
::keyapis::notification::v1::PostPushTokenResponse* Arena::CreateMaybeMessage<::keyapis::notification::v1::PostPushTokenResponse>(Arena*);
template <>
::keyapis::notification::v1::PostPushTokenResponse_Error* Arena::CreateMaybeMessage<::keyapis::notification::v1::PostPushTokenResponse_Error>(Arena*);
template <>
::keyapis::notification::v1::PushToken* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushToken>(Arena*);
template <>
::keyapis::notification::v1::PushTokenFilter* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushTokenFilter>(Arena*);
template <>
::keyapis::notification::v1::PushTokenFilter_ValidationError* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushTokenFilter_ValidationError>(Arena*);
template <>
::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid>(Arena*);
template <>
::keyapis::notification::v1::PushTokenPaging* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushTokenPaging>(Arena*);
template <>
::keyapis::notification::v1::PushTokenPaging_ValidationError* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushTokenPaging_ValidationError>(Arena*);
template <>
::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid>(Arena*);
template <>
::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid>(Arena*);
template <>
::keyapis::notification::v1::PushToken_SavingError* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushToken_SavingError>(Arena*);
template <>
::keyapis::notification::v1::PushToken_SavingError_Conflict* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushToken_SavingError_Conflict>(Arena*);
template <>
::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists>(Arena*);
template <>
::keyapis::notification::v1::PushToken_ValidationError* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushToken_ValidationError>(Arena*);
template <>
::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* Arena::CreateMaybeMessage<::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid>(Arena*);
template <>
::keyapis::notification::v1::ValidationError* Arena::CreateMaybeMessage<::keyapis::notification::v1::ValidationError>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

namespace keyapis {
namespace notification {
namespace v1 {
enum PushToken_Type : int {
  PushToken_Type_TYPE_UNKNOWN = 0,
  PushToken_Type_MOBILE_FCM = 1,
  PushToken_Type_MOBILE_HMS = 2,
  PushToken_Type_MOBILE_APNS_TEXT = 3,
  PushToken_Type_MOBILE_APNS_CALL = 4,
  PushToken_Type_PWA_FCM = 5,
  PushToken_Type_PWA_APNS = 6,
  PushToken_Type_MOBILE_RUSTORE = 7,
  PushToken_Type_PushToken_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  PushToken_Type_PushToken_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool PushToken_Type_IsValid(int value);
constexpr PushToken_Type PushToken_Type_Type_MIN = static_cast<PushToken_Type>(0);
constexpr PushToken_Type PushToken_Type_Type_MAX = static_cast<PushToken_Type>(7);
constexpr int PushToken_Type_Type_ARRAYSIZE = 7 + 1;
const std::string& PushToken_Type_Name(PushToken_Type value);
template <typename T>
const std::string& PushToken_Type_Name(T value) {
  static_assert(std::is_same<T, PushToken_Type>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return PushToken_Type_Name(static_cast<PushToken_Type>(value));
}
const std::string& PushToken_Type_Name(PushToken_Type value);
bool PushToken_Type_Parse(absl::string_view name, PushToken_Type* value);
enum PushTokenPaging_OrderByType : int {
  PushTokenPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN = 0,
  PushTokenPaging_OrderByType_ID = 1,
  PushTokenPaging_OrderByType_CREATED_AT = 2,
  PushTokenPaging_OrderByType_CHANGED_AT = 3,
  PushTokenPaging_OrderByType_PushTokenPaging_OrderByType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  PushTokenPaging_OrderByType_PushTokenPaging_OrderByType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool PushTokenPaging_OrderByType_IsValid(int value);
constexpr PushTokenPaging_OrderByType PushTokenPaging_OrderByType_OrderByType_MIN = static_cast<PushTokenPaging_OrderByType>(0);
constexpr PushTokenPaging_OrderByType PushTokenPaging_OrderByType_OrderByType_MAX = static_cast<PushTokenPaging_OrderByType>(3);
constexpr int PushTokenPaging_OrderByType_OrderByType_ARRAYSIZE = 3 + 1;
const std::string& PushTokenPaging_OrderByType_Name(PushTokenPaging_OrderByType value);
template <typename T>
const std::string& PushTokenPaging_OrderByType_Name(T value) {
  static_assert(std::is_same<T, PushTokenPaging_OrderByType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to OrderByType_Name().");
  return PushTokenPaging_OrderByType_Name(static_cast<PushTokenPaging_OrderByType>(value));
}
const std::string& PushTokenPaging_OrderByType_Name(PushTokenPaging_OrderByType value);
bool PushTokenPaging_OrderByType_Parse(absl::string_view name, PushTokenPaging_OrderByType* value);
enum PushTokenPaging_DirectionType : int {
  PushTokenPaging_DirectionType_DIRECTION_TYPE_UNKNOWN = 0,
  PushTokenPaging_DirectionType_DESC = 1,
  PushTokenPaging_DirectionType_ASC = 2,
  PushTokenPaging_DirectionType_PushTokenPaging_DirectionType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  PushTokenPaging_DirectionType_PushTokenPaging_DirectionType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool PushTokenPaging_DirectionType_IsValid(int value);
constexpr PushTokenPaging_DirectionType PushTokenPaging_DirectionType_DirectionType_MIN = static_cast<PushTokenPaging_DirectionType>(0);
constexpr PushTokenPaging_DirectionType PushTokenPaging_DirectionType_DirectionType_MAX = static_cast<PushTokenPaging_DirectionType>(2);
constexpr int PushTokenPaging_DirectionType_DirectionType_ARRAYSIZE = 2 + 1;
const std::string& PushTokenPaging_DirectionType_Name(PushTokenPaging_DirectionType value);
template <typename T>
const std::string& PushTokenPaging_DirectionType_Name(T value) {
  static_assert(std::is_same<T, PushTokenPaging_DirectionType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to DirectionType_Name().");
  return PushTokenPaging_DirectionType_Name(static_cast<PushTokenPaging_DirectionType>(value));
}
const std::string& PushTokenPaging_DirectionType_Name(PushTokenPaging_DirectionType value);
bool PushTokenPaging_DirectionType_Parse(absl::string_view name, PushTokenPaging_DirectionType* value);

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


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

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

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

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

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

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

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

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

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

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

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid";
  }
  protected:
  explicit PushToken_ValidationError_UserAppIdInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PushToken_ValidationError_UserAppIdInvalid UserAppIdInvalid;

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

  enum : int {
    kUserAppIdFieldNumber = 1,
  };
  // .keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid user_app_id = 1;
  bool has_user_app_id() const;
  private:
  bool _internal_has_user_app_id() const;

  public:
  void clear_user_app_id() ;
  const ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid& user_app_id() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* release_user_app_id();
  ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* mutable_user_app_id();
  void set_allocated_user_app_id(::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* user_app_id);
  private:
  const ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid& _internal_user_app_id() const;
  ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* _internal_mutable_user_app_id();
  public:
  void unsafe_arena_set_allocated_user_app_id(
      ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* user_app_id);
  ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* unsafe_arena_release_user_app_id();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushToken.ValidationError)
 private:
  class _Internal;
  void set_has_user_app_id();

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

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

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

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

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

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

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

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

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

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

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

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

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.notification.v1.PushToken.SavingError.UserAppIdExists";
  }
  protected:
  explicit PushToken_SavingError_UserAppIdExists(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.notification.v1.PushToken.SavingError.Conflict";
  }
  protected:
  explicit PushToken_SavingError_Conflict(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushToken.SavingError.Conflict)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

  static const PushToken_SavingError& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kUserAppIdExists = 1,
    kConflict = 2,
    REASON_NOT_SET = 0,
  };

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

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PushToken_SavingError_UserAppIdExists UserAppIdExists;
  typedef PushToken_SavingError_Conflict Conflict;

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

  enum : int {
    kUserAppIdExistsFieldNumber = 1,
    kConflictFieldNumber = 2,
  };
  // .keyapis.notification.v1.PushToken.SavingError.UserAppIdExists user_app_id_exists = 1;
  bool has_user_app_id_exists() const;
  private:
  bool _internal_has_user_app_id_exists() const;

  public:
  void clear_user_app_id_exists() ;
  const ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists& user_app_id_exists() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* release_user_app_id_exists();
  ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* mutable_user_app_id_exists();
  void set_allocated_user_app_id_exists(::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* user_app_id_exists);
  private:
  const ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists& _internal_user_app_id_exists() const;
  ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* _internal_mutable_user_app_id_exists();
  public:
  void unsafe_arena_set_allocated_user_app_id_exists(
      ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* user_app_id_exists);
  ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* unsafe_arena_release_user_app_id_exists();
  // .keyapis.notification.v1.PushToken.SavingError.Conflict conflict = 2;
  bool has_conflict() const;
  private:
  bool _internal_has_conflict() const;

  public:
  void clear_conflict() ;
  const ::keyapis::notification::v1::PushToken_SavingError_Conflict& conflict() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushToken_SavingError_Conflict* release_conflict();
  ::keyapis::notification::v1::PushToken_SavingError_Conflict* mutable_conflict();
  void set_allocated_conflict(::keyapis::notification::v1::PushToken_SavingError_Conflict* conflict);
  private:
  const ::keyapis::notification::v1::PushToken_SavingError_Conflict& _internal_conflict() const;
  ::keyapis::notification::v1::PushToken_SavingError_Conflict* _internal_mutable_conflict();
  public:
  void unsafe_arena_set_allocated_conflict(
      ::keyapis::notification::v1::PushToken_SavingError_Conflict* conflict);
  ::keyapis::notification::v1::PushToken_SavingError_Conflict* unsafe_arena_release_conflict();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushToken.SavingError)
 private:
  class _Internal;
  void set_has_user_app_id_exists();
  void set_has_conflict();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PushToken_ValidationError ValidationError;
  typedef PushToken_SavingError SavingError;

  using Type = PushToken_Type;
  static constexpr Type TYPE_UNKNOWN = PushToken_Type_TYPE_UNKNOWN;
  static constexpr Type MOBILE_FCM = PushToken_Type_MOBILE_FCM;
  static constexpr Type MOBILE_HMS = PushToken_Type_MOBILE_HMS;
  static constexpr Type MOBILE_APNS_TEXT = PushToken_Type_MOBILE_APNS_TEXT;
  static constexpr Type MOBILE_APNS_CALL = PushToken_Type_MOBILE_APNS_CALL;
  static constexpr Type PWA_FCM = PushToken_Type_PWA_FCM;
  static constexpr Type PWA_APNS = PushToken_Type_PWA_APNS;
  static constexpr Type MOBILE_RUSTORE = PushToken_Type_MOBILE_RUSTORE;
  static inline bool Type_IsValid(int value) {
    return PushToken_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = PushToken_Type_Type_MIN;
  static constexpr Type Type_MAX = PushToken_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = PushToken_Type_Type_ARRAYSIZE;
  template <typename T>
  static inline const std::string& Type_Name(T value) {
    return PushToken_Type_Name(value);
  }
  static inline bool Type_Parse(absl::string_view name, Type* value) {
    return PushToken_Type_Parse(name, value);
  }

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

  enum : int {
    kTokenFieldNumber = 3,
    kUserAppIdFieldNumber = 4,
    kAppVersionFieldNumber = 8,
    kUserIdFieldNumber = 5,
    kCreatedAtFieldNumber = 6,
    kChangedAtFieldNumber = 7,
    kIdFieldNumber = 1,
    kTypeFieldNumber = 2,
  };
  // string token = 3 [(.google.api.field_behavior) = REQUIRED];
  void clear_token() ;
  const std::string& token() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_token(Arg_&& arg, Args_... args);
  std::string* mutable_token();
  PROTOBUF_NODISCARD std::string* release_token();
  void set_allocated_token(std::string* ptr);

  private:
  const std::string& _internal_token() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_token(
      const std::string& value);
  std::string* _internal_mutable_token();

  public:
  // string user_app_id = 4 [(.google.api.field_behavior) = REQUIRED];
  void clear_user_app_id() ;
  const std::string& user_app_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_user_app_id(Arg_&& arg, Args_... args);
  std::string* mutable_user_app_id();
  PROTOBUF_NODISCARD std::string* release_user_app_id();
  void set_allocated_user_app_id(std::string* ptr);

  private:
  const std::string& _internal_user_app_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_app_id(
      const std::string& value);
  std::string* _internal_mutable_user_app_id();

  public:
  // string app_version = 8 [(.google.api.field_behavior) = REQUIRED];
  void clear_app_version() ;
  const std::string& app_version() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_app_version(Arg_&& arg, Args_... args);
  std::string* mutable_app_version();
  PROTOBUF_NODISCARD std::string* release_app_version();
  void set_allocated_app_version(std::string* ptr);

  private:
  const std::string& _internal_app_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_app_version(
      const std::string& value);
  std::string* _internal_mutable_app_version();

  public:
  // .google.protobuf.Int32Value user_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
  bool has_user_id() const;
  void clear_user_id() ;
  const ::PROTOBUF_NAMESPACE_ID::Int32Value& user_id() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Int32Value* release_user_id();
  ::PROTOBUF_NAMESPACE_ID::Int32Value* mutable_user_id();
  void set_allocated_user_id(::PROTOBUF_NAMESPACE_ID::Int32Value* user_id);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Int32Value& _internal_user_id() const;
  ::PROTOBUF_NAMESPACE_ID::Int32Value* _internal_mutable_user_id();
  public:
  void unsafe_arena_set_allocated_user_id(
      ::PROTOBUF_NAMESPACE_ID::Int32Value* user_id);
  ::PROTOBUF_NAMESPACE_ID::Int32Value* unsafe_arena_release_user_id();
  // .google.protobuf.Timestamp created_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
  bool has_created_at() const;
  void clear_created_at() ;
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& created_at() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_created_at();
  ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_created_at();
  void set_allocated_created_at(::PROTOBUF_NAMESPACE_ID::Timestamp* created_at);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_created_at() const;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_created_at();
  public:
  void unsafe_arena_set_allocated_created_at(
      ::PROTOBUF_NAMESPACE_ID::Timestamp* created_at);
  ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_created_at();
  // .google.protobuf.Timestamp changed_at = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
  bool has_changed_at() const;
  void clear_changed_at() ;
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& changed_at() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_changed_at();
  ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_changed_at();
  void set_allocated_changed_at(::PROTOBUF_NAMESPACE_ID::Timestamp* changed_at);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_changed_at() const;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_changed_at();
  public:
  void unsafe_arena_set_allocated_changed_at(
      ::PROTOBUF_NAMESPACE_ID::Timestamp* changed_at);
  ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_changed_at();
  // int32 id = 1;
  void clear_id() ;
  ::int32_t id() const;
  void set_id(::int32_t value);

  private:
  ::int32_t _internal_id() const;
  void _internal_set_id(::int32_t value);

  public:
  // .keyapis.notification.v1.PushToken.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_type() ;
  ::keyapis::notification::v1::PushToken_Type type() const;
  void set_type(::keyapis::notification::v1::PushToken_Type value);

  private:
  ::keyapis::notification::v1::PushToken_Type _internal_type() const;
  void _internal_set_type(::keyapis::notification::v1::PushToken_Type value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushToken)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr token_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_app_id_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr app_version_;
    ::PROTOBUF_NAMESPACE_ID::Int32Value* user_id_;
    ::PROTOBUF_NAMESPACE_ID::Timestamp* created_at_;
    ::PROTOBUF_NAMESPACE_ID::Timestamp* changed_at_;
    ::int32_t id_;
    int type_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid";
  }
  protected:
  explicit PushTokenFilter_ValidationError_UserAppIdsInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PushTokenFilter_ValidationError_UserAppIdsInvalid UserAppIdsInvalid;

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

  enum : int {
    kUserAppIdsFieldNumber = 1,
  };
  // .keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid user_app_ids = 1;
  bool has_user_app_ids() const;
  private:
  bool _internal_has_user_app_ids() const;

  public:
  void clear_user_app_ids() ;
  const ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid& user_app_ids() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* release_user_app_ids();
  ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* mutable_user_app_ids();
  void set_allocated_user_app_ids(::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* user_app_ids);
  private:
  const ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid& _internal_user_app_ids() const;
  ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* _internal_mutable_user_app_ids();
  public:
  void unsafe_arena_set_allocated_user_app_ids(
      ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* user_app_ids);
  ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* unsafe_arena_release_user_app_ids();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushTokenFilter.ValidationError)
 private:
  class _Internal;
  void set_has_user_app_ids();

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

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

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

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

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

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

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

  static const PushTokenFilter& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushTokenFilter* internal_default_instance() {
    return reinterpret_cast<const PushTokenFilter*>(
               &_PushTokenFilter_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PushTokenFilter_ValidationError ValidationError;

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

  enum : int {
    kTypesFieldNumber = 1,
    kUserAppIdsFieldNumber = 2,
    kUserIdsFieldNumber = 3,
    kBeginCreatedAtFieldNumber = 4,
    kEndCreatedAtFieldNumber = 5,
    kBeginChangedAtFieldNumber = 6,
    kEndChangedAtFieldNumber = 7,
  };
  // repeated .keyapis.notification.v1.PushToken.Type types = 1;
  int types_size() const;
  private:
  int _internal_types_size() const;

  public:
  void clear_types() ;
  public:
  ::keyapis::notification::v1::PushToken_Type types(int index) const;
  void set_types(int index, ::keyapis::notification::v1::PushToken_Type value);
  void add_types(::keyapis::notification::v1::PushToken_Type value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& types() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_types();

  private:
  ::keyapis::notification::v1::PushToken_Type _internal_types(int index) const;
  void _internal_add_types(::keyapis::notification::v1::PushToken_Type value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& _internal_types() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_types();

  public:
  // repeated string user_app_ids = 2;
  int user_app_ids_size() const;
  private:
  int _internal_user_app_ids_size() const;

  public:
  void clear_user_app_ids() ;
  const std::string& user_app_ids(int index) const;
  std::string* mutable_user_app_ids(int index);
  void set_user_app_ids(int index, const std::string& value);
  void set_user_app_ids(int index, std::string&& value);
  void set_user_app_ids(int index, const char* value);
  void set_user_app_ids(int index, const char* value, std::size_t size);
  void set_user_app_ids(int index, absl::string_view value);
  std::string* add_user_app_ids();
  void add_user_app_ids(const std::string& value);
  void add_user_app_ids(std::string&& value);
  void add_user_app_ids(const char* value);
  void add_user_app_ids(const char* value, std::size_t size);
  void add_user_app_ids(absl::string_view value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& user_app_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_user_app_ids();

  private:
  const std::string& _internal_user_app_ids(int index) const;
  std::string* _internal_add_user_app_ids();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& _internal_user_app_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* _internal_mutable_user_app_ids();

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

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

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

  public:
  // .google.protobuf.Timestamp begin_created_at = 4;
  bool has_begin_created_at() const;
  void clear_begin_created_at() ;
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& begin_created_at() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_begin_created_at();
  ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_begin_created_at();
  void set_allocated_begin_created_at(::PROTOBUF_NAMESPACE_ID::Timestamp* begin_created_at);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_begin_created_at() const;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_begin_created_at();
  public:
  void unsafe_arena_set_allocated_begin_created_at(
      ::PROTOBUF_NAMESPACE_ID::Timestamp* begin_created_at);
  ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_begin_created_at();
  // .google.protobuf.Timestamp end_created_at = 5;
  bool has_end_created_at() const;
  void clear_end_created_at() ;
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& end_created_at() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_end_created_at();
  ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_end_created_at();
  void set_allocated_end_created_at(::PROTOBUF_NAMESPACE_ID::Timestamp* end_created_at);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_end_created_at() const;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_end_created_at();
  public:
  void unsafe_arena_set_allocated_end_created_at(
      ::PROTOBUF_NAMESPACE_ID::Timestamp* end_created_at);
  ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_end_created_at();
  // .google.protobuf.Timestamp begin_changed_at = 6;
  bool has_begin_changed_at() const;
  void clear_begin_changed_at() ;
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& begin_changed_at() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_begin_changed_at();
  ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_begin_changed_at();
  void set_allocated_begin_changed_at(::PROTOBUF_NAMESPACE_ID::Timestamp* begin_changed_at);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_begin_changed_at() const;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_begin_changed_at();
  public:
  void unsafe_arena_set_allocated_begin_changed_at(
      ::PROTOBUF_NAMESPACE_ID::Timestamp* begin_changed_at);
  ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_begin_changed_at();
  // .google.protobuf.Timestamp end_changed_at = 7;
  bool has_end_changed_at() const;
  void clear_end_changed_at() ;
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& end_changed_at() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_end_changed_at();
  ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_end_changed_at();
  void set_allocated_end_changed_at(::PROTOBUF_NAMESPACE_ID::Timestamp* end_changed_at);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_end_changed_at() const;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_end_changed_at();
  public:
  void unsafe_arena_set_allocated_end_changed_at(
      ::PROTOBUF_NAMESPACE_ID::Timestamp* end_changed_at);
  ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_end_changed_at();
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushTokenFilter)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> types_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _types_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> user_app_ids_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField<::int32_t> user_ids_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _user_ids_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::Timestamp* begin_created_at_;
    ::PROTOBUF_NAMESPACE_ID::Timestamp* end_created_at_;
    ::PROTOBUF_NAMESPACE_ID::Timestamp* begin_changed_at_;
    ::PROTOBUF_NAMESPACE_ID::Timestamp* end_changed_at_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

  static const PushTokenPaging_ValidationError_LimitInvalid& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushTokenPaging_ValidationError_LimitInvalid* internal_default_instance() {
    return reinterpret_cast<const PushTokenPaging_ValidationError_LimitInvalid*>(
               &_PushTokenPaging_ValidationError_LimitInvalid_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

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

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

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

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

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid";
  }
  protected:
  explicit PushTokenPaging_ValidationError_LimitInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

  static const PushTokenPaging_ValidationError_OffsetInvalid& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushTokenPaging_ValidationError_OffsetInvalid* internal_default_instance() {
    return reinterpret_cast<const PushTokenPaging_ValidationError_OffsetInvalid*>(
               &_PushTokenPaging_ValidationError_OffsetInvalid_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

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

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

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

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

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid";
  }
  protected:
  explicit PushTokenPaging_ValidationError_OffsetInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

  static const PushTokenPaging_ValidationError& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kLimit = 1,
    kOffset = 2,
    REASON_NOT_SET = 0,
  };

  static inline const PushTokenPaging_ValidationError* internal_default_instance() {
    return reinterpret_cast<const PushTokenPaging_ValidationError*>(
               &_PushTokenPaging_ValidationError_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PushTokenPaging_ValidationError_LimitInvalid LimitInvalid;
  typedef PushTokenPaging_ValidationError_OffsetInvalid OffsetInvalid;

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

  enum : int {
    kLimitFieldNumber = 1,
    kOffsetFieldNumber = 2,
  };
  // .keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid limit = 1;
  bool has_limit() const;
  private:
  bool _internal_has_limit() const;

  public:
  void clear_limit() ;
  const ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid& limit() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* release_limit();
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* mutable_limit();
  void set_allocated_limit(::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* limit);
  private:
  const ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid& _internal_limit() const;
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* _internal_mutable_limit();
  public:
  void unsafe_arena_set_allocated_limit(
      ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* limit);
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* unsafe_arena_release_limit();
  // .keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid offset = 2;
  bool has_offset() const;
  private:
  bool _internal_has_offset() const;

  public:
  void clear_offset() ;
  const ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid& offset() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* release_offset();
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* mutable_offset();
  void set_allocated_offset(::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* offset);
  private:
  const ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid& _internal_offset() const;
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* _internal_mutable_offset();
  public:
  void unsafe_arena_set_allocated_offset(
      ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* offset);
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* unsafe_arena_release_offset();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushTokenPaging.ValidationError)
 private:
  class _Internal;
  void set_has_limit();
  void set_has_offset();

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

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

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

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

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

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

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

  static const PushTokenPaging& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushTokenPaging* internal_default_instance() {
    return reinterpret_cast<const PushTokenPaging*>(
               &_PushTokenPaging_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PushTokenPaging_ValidationError ValidationError;

  using OrderByType = PushTokenPaging_OrderByType;
  static constexpr OrderByType ORDER_BY_TYPE_UNKNOWN = PushTokenPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN;
  static constexpr OrderByType ID = PushTokenPaging_OrderByType_ID;
  static constexpr OrderByType CREATED_AT = PushTokenPaging_OrderByType_CREATED_AT;
  static constexpr OrderByType CHANGED_AT = PushTokenPaging_OrderByType_CHANGED_AT;
  static inline bool OrderByType_IsValid(int value) {
    return PushTokenPaging_OrderByType_IsValid(value);
  }
  static constexpr OrderByType OrderByType_MIN = PushTokenPaging_OrderByType_OrderByType_MIN;
  static constexpr OrderByType OrderByType_MAX = PushTokenPaging_OrderByType_OrderByType_MAX;
  static constexpr int OrderByType_ARRAYSIZE = PushTokenPaging_OrderByType_OrderByType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& OrderByType_Name(T value) {
    return PushTokenPaging_OrderByType_Name(value);
  }
  static inline bool OrderByType_Parse(absl::string_view name, OrderByType* value) {
    return PushTokenPaging_OrderByType_Parse(name, value);
  }

  using DirectionType = PushTokenPaging_DirectionType;
  static constexpr DirectionType DIRECTION_TYPE_UNKNOWN = PushTokenPaging_DirectionType_DIRECTION_TYPE_UNKNOWN;
  static constexpr DirectionType DESC = PushTokenPaging_DirectionType_DESC;
  static constexpr DirectionType ASC = PushTokenPaging_DirectionType_ASC;
  static inline bool DirectionType_IsValid(int value) {
    return PushTokenPaging_DirectionType_IsValid(value);
  }
  static constexpr DirectionType DirectionType_MIN = PushTokenPaging_DirectionType_DirectionType_MIN;
  static constexpr DirectionType DirectionType_MAX = PushTokenPaging_DirectionType_DirectionType_MAX;
  static constexpr int DirectionType_ARRAYSIZE = PushTokenPaging_DirectionType_DirectionType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& DirectionType_Name(T value) {
    return PushTokenPaging_DirectionType_Name(value);
  }
  static inline bool DirectionType_Parse(absl::string_view name, DirectionType* value) {
    return PushTokenPaging_DirectionType_Parse(name, value);
  }

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

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

  private:
  ::keyapis::notification::v1::PushTokenPaging_OrderByType _internal_order_by_type() const;
  void _internal_set_order_by_type(::keyapis::notification::v1::PushTokenPaging_OrderByType value);

  public:
  // .keyapis.notification.v1.PushTokenPaging.DirectionType direction_type = 2;
  void clear_direction_type() ;
  ::keyapis::notification::v1::PushTokenPaging_DirectionType direction_type() const;
  void set_direction_type(::keyapis::notification::v1::PushTokenPaging_DirectionType value);

  private:
  ::keyapis::notification::v1::PushTokenPaging_DirectionType _internal_direction_type() const;
  void _internal_set_direction_type(::keyapis::notification::v1::PushTokenPaging_DirectionType value);

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

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

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

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

  public:
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PushTokenPaging)
 private:
  class _Internal;

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

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

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

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

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

  static const PostPushTokenRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PostPushTokenRequest* internal_default_instance() {
    return reinterpret_cast<const PostPushTokenRequest*>(
               &_PostPushTokenRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // .keyapis.notification.v1.PushToken data = 1 [(.google.api.field_behavior) = REQUIRED];
  bool has_data() const;
  void clear_data() ;
  const ::keyapis::notification::v1::PushToken& data() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushToken* release_data();
  ::keyapis::notification::v1::PushToken* mutable_data();
  void set_allocated_data(::keyapis::notification::v1::PushToken* data);
  private:
  const ::keyapis::notification::v1::PushToken& _internal_data() const;
  ::keyapis::notification::v1::PushToken* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::keyapis::notification::v1::PushToken* data);
  ::keyapis::notification::v1::PushToken* unsafe_arena_release_data();
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.PostPushTokenRequest)
 private:
  class _Internal;

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

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

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

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

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

  static const PostPushTokenResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kPushTokenValidation = 1,
    kPushTokenSaving = 2,
    kValidation = 3,
    REASON_NOT_SET = 0,
  };

  static inline const PostPushTokenResponse_Error* internal_default_instance() {
    return reinterpret_cast<const PostPushTokenResponse_Error*>(
               &_PostPushTokenResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kPushTokenValidationFieldNumber = 1,
    kPushTokenSavingFieldNumber = 2,
    kValidationFieldNumber = 3,
  };
  // .keyapis.notification.v1.PushToken.ValidationError push_token_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
  [[deprecated]]  bool has_push_token_validation() const;
  private:
  bool _internal_has_push_token_validation() const;

  public:
  [[deprecated]]  void clear_push_token_validation() ;
  [[deprecated]] const ::keyapis::notification::v1::PushToken_ValidationError& push_token_validation() const;
  [[deprecated]] PROTOBUF_NODISCARD ::keyapis::notification::v1::PushToken_ValidationError* release_push_token_validation();
  [[deprecated]] ::keyapis::notification::v1::PushToken_ValidationError* mutable_push_token_validation();
  [[deprecated]] void set_allocated_push_token_validation(::keyapis::notification::v1::PushToken_ValidationError* push_token_validation);
  private:
  const ::keyapis::notification::v1::PushToken_ValidationError& _internal_push_token_validation() const;
  ::keyapis::notification::v1::PushToken_ValidationError* _internal_mutable_push_token_validation();
  public:
  [[deprecated]] void unsafe_arena_set_allocated_push_token_validation(
      ::keyapis::notification::v1::PushToken_ValidationError* push_token_validation);
  [[deprecated]] ::keyapis::notification::v1::PushToken_ValidationError* unsafe_arena_release_push_token_validation();
  // .keyapis.notification.v1.PushToken.SavingError push_token_saving = 2;
  bool has_push_token_saving() const;
  private:
  bool _internal_has_push_token_saving() const;

  public:
  void clear_push_token_saving() ;
  const ::keyapis::notification::v1::PushToken_SavingError& push_token_saving() const;
  PROTOBUF_NODISCARD ::keyapis::notification::v1::PushToken_SavingError* release_push_token_saving();
  ::keyapis::notification::v1::PushToken_SavingError* mutable_push_token_saving();
  void set_allocated_push_token_saving(::keyapis::notification::v1::PushToken_SavingError* push_token_saving);
  private:
  const ::keyapis::notification::v1::PushToken_SavingError& _internal_push_token_saving() const;
  ::keyapis::notification::v1::PushToken_SavingError* _internal_mutable_push_token_saving();
  public:
  void unsafe_arena_set_allocated_push_token_saving(
      ::keyapis::notification::v1::PushToken_SavingError* push_token_saving);
  ::keyapis::notification::v1::PushToken_SavingError* unsafe_arena_release_push_token_saving();
  // .keyapis.notification.v1.ValidationError validation = 3;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

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

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

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

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

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

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

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

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

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

  static inline const PostPushTokenResponse* internal_default_instance() {
    return reinterpret_cast<const PostPushTokenResponse*>(
               &_PostPushTokenResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef PostPushTokenResponse_Error Error;

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

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

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

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

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

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

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

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

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

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

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

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

  static inline const GetPushTokenListRequest* internal_default_instance() {
    return reinterpret_cast<const GetPushTokenListRequest*>(
               &_GetPushTokenListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

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

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

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

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

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

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

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

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

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

  static const GetPushTokenCountRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetPushTokenCountRequest* internal_default_instance() {
    return reinterpret_cast<const GetPushTokenCountRequest*>(
               &_GetPushTokenCountRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

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

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

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

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

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

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

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

  static inline const GetPushTokenCountResponse_Error* internal_default_instance() {
    return reinterpret_cast<const GetPushTokenCountResponse_Error*>(
               &_GetPushTokenCountResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kPushTokenFilterValidationFieldNumber = 1,
    kValidationFieldNumber = 2,
  };
  // .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
  [[deprecated]]  bool has_push_token_filter_validation() const;
  private:
  bool _internal_has_push_token_filter_validation() const;

  public:
  [[deprecated]]  void clear_push_token_filter_validation() ;
  [[deprecated]] const ::keyapis::notification::v1::PushTokenFilter_ValidationError& push_token_filter_validation() const;
  [[deprecated]] PROTOBUF_NODISCARD ::keyapis::notification::v1::PushTokenFilter_ValidationError* release_push_token_filter_validation();
  [[deprecated]] ::keyapis::notification::v1::PushTokenFilter_ValidationError* mutable_push_token_filter_validation();
  [[deprecated]] void set_allocated_push_token_filter_validation(::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation);
  private:
  const ::keyapis::notification::v1::PushTokenFilter_ValidationError& _internal_push_token_filter_validation() const;
  ::keyapis::notification::v1::PushTokenFilter_ValidationError* _internal_mutable_push_token_filter_validation();
  public:
  [[deprecated]] void unsafe_arena_set_allocated_push_token_filter_validation(
      ::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation);
  [[deprecated]] ::keyapis::notification::v1::PushTokenFilter_ValidationError* unsafe_arena_release_push_token_filter_validation();
  // .keyapis.notification.v1.ValidationError validation = 2;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

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

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

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

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

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

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

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

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

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

  static inline const GetPushTokenCountResponse* internal_default_instance() {
    return reinterpret_cast<const GetPushTokenCountResponse*>(
               &_GetPushTokenCountResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef GetPushTokenCountResponse_Error Error;

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

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

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

  public:
  // .keyapis.notification.v1.GetPushTokenCountResponse.Error error = 2;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

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

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

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

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

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

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

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

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

  static const GetPushTokenListResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kPushTokenFilterValidation = 1,
    kPushTokenPagingValidation = 2,
    kValidation = 3,
    REASON_NOT_SET = 0,
  };

  static inline const GetPushTokenListResponse_Error* internal_default_instance() {
    return reinterpret_cast<const GetPushTokenListResponse_Error*>(
               &_GetPushTokenListResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kPushTokenFilterValidationFieldNumber = 1,
    kPushTokenPagingValidationFieldNumber = 2,
    kValidationFieldNumber = 3,
  };
  // .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
  [[deprecated]]  bool has_push_token_filter_validation() const;
  private:
  bool _internal_has_push_token_filter_validation() const;

  public:
  [[deprecated]]  void clear_push_token_filter_validation() ;
  [[deprecated]] const ::keyapis::notification::v1::PushTokenFilter_ValidationError& push_token_filter_validation() const;
  [[deprecated]] PROTOBUF_NODISCARD ::keyapis::notification::v1::PushTokenFilter_ValidationError* release_push_token_filter_validation();
  [[deprecated]] ::keyapis::notification::v1::PushTokenFilter_ValidationError* mutable_push_token_filter_validation();
  [[deprecated]] void set_allocated_push_token_filter_validation(::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation);
  private:
  const ::keyapis::notification::v1::PushTokenFilter_ValidationError& _internal_push_token_filter_validation() const;
  ::keyapis::notification::v1::PushTokenFilter_ValidationError* _internal_mutable_push_token_filter_validation();
  public:
  [[deprecated]] void unsafe_arena_set_allocated_push_token_filter_validation(
      ::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation);
  [[deprecated]] ::keyapis::notification::v1::PushTokenFilter_ValidationError* unsafe_arena_release_push_token_filter_validation();
  // .keyapis.notification.v1.PushTokenPaging.ValidationError push_token_paging_validation = 2 [deprecated = true, (.google.api.field_visibility) = {
  [[deprecated]]  bool has_push_token_paging_validation() const;
  private:
  bool _internal_has_push_token_paging_validation() const;

  public:
  [[deprecated]]  void clear_push_token_paging_validation() ;
  [[deprecated]] const ::keyapis::notification::v1::PushTokenPaging_ValidationError& push_token_paging_validation() const;
  [[deprecated]] PROTOBUF_NODISCARD ::keyapis::notification::v1::PushTokenPaging_ValidationError* release_push_token_paging_validation();
  [[deprecated]] ::keyapis::notification::v1::PushTokenPaging_ValidationError* mutable_push_token_paging_validation();
  [[deprecated]] void set_allocated_push_token_paging_validation(::keyapis::notification::v1::PushTokenPaging_ValidationError* push_token_paging_validation);
  private:
  const ::keyapis::notification::v1::PushTokenPaging_ValidationError& _internal_push_token_paging_validation() const;
  ::keyapis::notification::v1::PushTokenPaging_ValidationError* _internal_mutable_push_token_paging_validation();
  public:
  [[deprecated]] void unsafe_arena_set_allocated_push_token_paging_validation(
      ::keyapis::notification::v1::PushTokenPaging_ValidationError* push_token_paging_validation);
  [[deprecated]] ::keyapis::notification::v1::PushTokenPaging_ValidationError* unsafe_arena_release_push_token_paging_validation();
  // .keyapis.notification.v1.ValidationError validation = 3;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

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

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

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

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

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

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

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

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

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

  static inline const GetPushTokenListResponse* internal_default_instance() {
    return reinterpret_cast<const GetPushTokenListResponse*>(
               &_GetPushTokenListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef GetPushTokenListResponse_Error Error;

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

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

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

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

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

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

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

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

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

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

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

  static const DeletePushTokenRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeletePushTokenRequest* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenRequest*>(
               &_DeletePushTokenRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kIdFieldNumber = 1,
  };
  // int32 id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_id() ;
  ::int32_t id() const;
  void set_id(::int32_t value);

  private:
  ::int32_t _internal_id() const;
  void _internal_set_id(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.DeletePushTokenRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::int32_t id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

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

  static inline const DeletePushTokenResponse_Error* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenResponse_Error*>(
               &_DeletePushTokenResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

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

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

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

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

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

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

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

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

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

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

  static inline const DeletePushTokenResponse* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenResponse*>(
               &_DeletePushTokenResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef DeletePushTokenResponse_Error Error;

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

  enum : int {
    kErrorFieldNumber = 1,
  };
  // .keyapis.notification.v1.DeletePushTokenResponse.Error error = 1;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

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

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

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

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

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

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

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

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

  static const DeletePushTokenUserIdRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeletePushTokenUserIdRequest* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenUserIdRequest*>(
               &_DeletePushTokenUserIdRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kUserIdFieldNumber = 1,
  };
  // int32 user_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_user_id() ;
  ::int32_t user_id() const;
  void set_user_id(::int32_t value);

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

  public:
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.DeletePushTokenUserIdRequest)
 private:
  class _Internal;

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

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

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

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

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

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

  static inline const DeletePushTokenUserIdResponse_Error* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenUserIdResponse_Error*>(
               &_DeletePushTokenUserIdResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

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

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

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

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

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

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

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

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

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

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

  static inline const DeletePushTokenUserIdResponse* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenUserIdResponse*>(
               &_DeletePushTokenUserIdResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef DeletePushTokenUserIdResponse_Error Error;

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

  enum : int {
    kErrorFieldNumber = 1,
  };
  // .keyapis.notification.v1.DeletePushTokenUserIdResponse.Error error = 1;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

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

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

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

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

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

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

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

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

  static const DeletePushTokenUserAppIdRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeletePushTokenUserAppIdRequest* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenUserAppIdRequest*>(
               &_DeletePushTokenUserAppIdRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    28;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kUserAppIdFieldNumber = 1,
  };
  // string user_app_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_user_app_id() ;
  const std::string& user_app_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_user_app_id(Arg_&& arg, Args_... args);
  std::string* mutable_user_app_id();
  PROTOBUF_NODISCARD std::string* release_user_app_id();
  void set_allocated_user_app_id(std::string* ptr);

  private:
  const std::string& _internal_user_app_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_app_id(
      const std::string& value);
  std::string* _internal_mutable_user_app_id();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_app_id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

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

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

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

  static inline const DeletePushTokenUserAppIdResponse_Error* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenUserAppIdResponse_Error*>(
               &_DeletePushTokenUserAppIdResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    29;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

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

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

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

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

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

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

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

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

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

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

  static inline const DeletePushTokenUserAppIdResponse* internal_default_instance() {
    return reinterpret_cast<const DeletePushTokenUserAppIdResponse*>(
               &_DeletePushTokenUserAppIdResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    30;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

  typedef DeletePushTokenUserAppIdResponse_Error Error;

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

  enum : int {
    kErrorFieldNumber = 1,
  };
  // .keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error error = 1;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

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

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

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

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

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

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

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

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

  static const ValidationError& default_instance() {
    return *internal_default_instance();
  }
  static inline const ValidationError* internal_default_instance() {
    return reinterpret_cast<const ValidationError*>(
               &_ValidationError_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    31;

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

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

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

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

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

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kPathFieldNumber = 1,
    kMessageFieldNumber = 2,
  };
  // string path = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_path() ;
  const std::string& path() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_path(Arg_&& arg, Args_... args);
  std::string* mutable_path();
  PROTOBUF_NODISCARD std::string* release_path();
  void set_allocated_path(std::string* ptr);

  private:
  const std::string& _internal_path() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_path(
      const std::string& value);
  std::string* _internal_mutable_path();

  public:
  // string message = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_message() ;
  const std::string& message() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_message(Arg_&& arg, Args_... args);
  std::string* mutable_message();
  PROTOBUF_NODISCARD std::string* release_message();
  void set_allocated_message(std::string* ptr);

  private:
  const std::string& _internal_message() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_message(
      const std::string& value);
  std::string* _internal_mutable_message();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.notification.v1.ValidationError)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr path_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr message_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto;
};

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




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


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

// PushToken_ValidationError_UserAppIdInvalid

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

// PushToken_ValidationError

// .keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid user_app_id = 1;
inline bool PushToken_ValidationError::has_user_app_id() const {
  return reason_case() == kUserAppId;
}
inline bool PushToken_ValidationError::_internal_has_user_app_id() const {
  return reason_case() == kUserAppId;
}
inline void PushToken_ValidationError::set_has_user_app_id() {
  _impl_._oneof_case_[0] = kUserAppId;
}
inline void PushToken_ValidationError::clear_user_app_id() {
  if (reason_case() == kUserAppId) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.user_app_id_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* PushToken_ValidationError::release_user_app_id() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.ValidationError.user_app_id)
  if (reason_case() == kUserAppId) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* temp = _impl_.reason_.user_app_id_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.user_app_id_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid& PushToken_ValidationError::_internal_user_app_id() const {
  return reason_case() == kUserAppId
      ? *_impl_.reason_.user_app_id_
      : reinterpret_cast<::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid&>(::keyapis::notification::v1::_PushToken_ValidationError_UserAppIdInvalid_default_instance_);
}
inline const ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid& PushToken_ValidationError::user_app_id() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.ValidationError.user_app_id)
  return _internal_user_app_id();
}
inline ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* PushToken_ValidationError::unsafe_arena_release_user_app_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PushToken.ValidationError.user_app_id)
  if (reason_case() == kUserAppId) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* temp = _impl_.reason_.user_app_id_;
    _impl_.reason_.user_app_id_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushToken_ValidationError::unsafe_arena_set_allocated_user_app_id(::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* user_app_id) {
  clear_reason();
  if (user_app_id) {
    set_has_user_app_id();
    _impl_.reason_.user_app_id_ = user_app_id;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushToken.ValidationError.user_app_id)
}
inline ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* PushToken_ValidationError::_internal_mutable_user_app_id() {
  if (reason_case() != kUserAppId) {
    clear_reason();
    set_has_user_app_id();
    _impl_.reason_.user_app_id_ = CreateMaybeMessage< ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid >(GetArenaForAllocation());
  }
  return _impl_.reason_.user_app_id_;
}
inline ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* PushToken_ValidationError::mutable_user_app_id() {
  ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* _msg = _internal_mutable_user_app_id();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.ValidationError.user_app_id)
  return _msg;
}

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

// PushToken_SavingError_UserAppIdExists

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

// PushToken_SavingError_Conflict

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

// PushToken_SavingError

// .keyapis.notification.v1.PushToken.SavingError.UserAppIdExists user_app_id_exists = 1;
inline bool PushToken_SavingError::has_user_app_id_exists() const {
  return reason_case() == kUserAppIdExists;
}
inline bool PushToken_SavingError::_internal_has_user_app_id_exists() const {
  return reason_case() == kUserAppIdExists;
}
inline void PushToken_SavingError::set_has_user_app_id_exists() {
  _impl_._oneof_case_[0] = kUserAppIdExists;
}
inline void PushToken_SavingError::clear_user_app_id_exists() {
  if (reason_case() == kUserAppIdExists) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.user_app_id_exists_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* PushToken_SavingError::release_user_app_id_exists() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.SavingError.user_app_id_exists)
  if (reason_case() == kUserAppIdExists) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* temp = _impl_.reason_.user_app_id_exists_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.user_app_id_exists_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists& PushToken_SavingError::_internal_user_app_id_exists() const {
  return reason_case() == kUserAppIdExists
      ? *_impl_.reason_.user_app_id_exists_
      : reinterpret_cast<::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists&>(::keyapis::notification::v1::_PushToken_SavingError_UserAppIdExists_default_instance_);
}
inline const ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists& PushToken_SavingError::user_app_id_exists() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.SavingError.user_app_id_exists)
  return _internal_user_app_id_exists();
}
inline ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* PushToken_SavingError::unsafe_arena_release_user_app_id_exists() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PushToken.SavingError.user_app_id_exists)
  if (reason_case() == kUserAppIdExists) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* temp = _impl_.reason_.user_app_id_exists_;
    _impl_.reason_.user_app_id_exists_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushToken_SavingError::unsafe_arena_set_allocated_user_app_id_exists(::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* user_app_id_exists) {
  clear_reason();
  if (user_app_id_exists) {
    set_has_user_app_id_exists();
    _impl_.reason_.user_app_id_exists_ = user_app_id_exists;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushToken.SavingError.user_app_id_exists)
}
inline ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* PushToken_SavingError::_internal_mutable_user_app_id_exists() {
  if (reason_case() != kUserAppIdExists) {
    clear_reason();
    set_has_user_app_id_exists();
    _impl_.reason_.user_app_id_exists_ = CreateMaybeMessage< ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists >(GetArenaForAllocation());
  }
  return _impl_.reason_.user_app_id_exists_;
}
inline ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* PushToken_SavingError::mutable_user_app_id_exists() {
  ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* _msg = _internal_mutable_user_app_id_exists();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.SavingError.user_app_id_exists)
  return _msg;
}

// .keyapis.notification.v1.PushToken.SavingError.Conflict conflict = 2;
inline bool PushToken_SavingError::has_conflict() const {
  return reason_case() == kConflict;
}
inline bool PushToken_SavingError::_internal_has_conflict() const {
  return reason_case() == kConflict;
}
inline void PushToken_SavingError::set_has_conflict() {
  _impl_._oneof_case_[0] = kConflict;
}
inline void PushToken_SavingError::clear_conflict() {
  if (reason_case() == kConflict) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.conflict_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushToken_SavingError_Conflict* PushToken_SavingError::release_conflict() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.SavingError.conflict)
  if (reason_case() == kConflict) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_SavingError_Conflict* temp = _impl_.reason_.conflict_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.conflict_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushToken_SavingError_Conflict& PushToken_SavingError::_internal_conflict() const {
  return reason_case() == kConflict
      ? *_impl_.reason_.conflict_
      : reinterpret_cast<::keyapis::notification::v1::PushToken_SavingError_Conflict&>(::keyapis::notification::v1::_PushToken_SavingError_Conflict_default_instance_);
}
inline const ::keyapis::notification::v1::PushToken_SavingError_Conflict& PushToken_SavingError::conflict() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.SavingError.conflict)
  return _internal_conflict();
}
inline ::keyapis::notification::v1::PushToken_SavingError_Conflict* PushToken_SavingError::unsafe_arena_release_conflict() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PushToken.SavingError.conflict)
  if (reason_case() == kConflict) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_SavingError_Conflict* temp = _impl_.reason_.conflict_;
    _impl_.reason_.conflict_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushToken_SavingError::unsafe_arena_set_allocated_conflict(::keyapis::notification::v1::PushToken_SavingError_Conflict* conflict) {
  clear_reason();
  if (conflict) {
    set_has_conflict();
    _impl_.reason_.conflict_ = conflict;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushToken.SavingError.conflict)
}
inline ::keyapis::notification::v1::PushToken_SavingError_Conflict* PushToken_SavingError::_internal_mutable_conflict() {
  if (reason_case() != kConflict) {
    clear_reason();
    set_has_conflict();
    _impl_.reason_.conflict_ = CreateMaybeMessage< ::keyapis::notification::v1::PushToken_SavingError_Conflict >(GetArenaForAllocation());
  }
  return _impl_.reason_.conflict_;
}
inline ::keyapis::notification::v1::PushToken_SavingError_Conflict* PushToken_SavingError::mutable_conflict() {
  ::keyapis::notification::v1::PushToken_SavingError_Conflict* _msg = _internal_mutable_conflict();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.SavingError.conflict)
  return _msg;
}

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

// PushToken

// int32 id = 1;
inline void PushToken::clear_id() {
  _impl_.id_ = 0;
}
inline ::int32_t PushToken::id() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.id)
  return _internal_id();
}
inline void PushToken::set_id(::int32_t value) {
  _internal_set_id(value);
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushToken.id)
}
inline ::int32_t PushToken::_internal_id() const {
  return _impl_.id_;
}
inline void PushToken::_internal_set_id(::int32_t value) {
  ;
  _impl_.id_ = value;
}

// .keyapis.notification.v1.PushToken.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
inline void PushToken::clear_type() {
  _impl_.type_ = 0;
}
inline ::keyapis::notification::v1::PushToken_Type PushToken::type() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.type)
  return _internal_type();
}
inline void PushToken::set_type(::keyapis::notification::v1::PushToken_Type value) {
   _internal_set_type(value);
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushToken.type)
}
inline ::keyapis::notification::v1::PushToken_Type PushToken::_internal_type() const {
  return static_cast<::keyapis::notification::v1::PushToken_Type>(_impl_.type_);
}
inline void PushToken::_internal_set_type(::keyapis::notification::v1::PushToken_Type value) {
  ;
  _impl_.type_ = value;
}

// string token = 3 [(.google.api.field_behavior) = REQUIRED];
inline void PushToken::clear_token() {
  _impl_.token_.ClearToEmpty();
}
inline const std::string& PushToken::token() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.token)
  return _internal_token();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PushToken::set_token(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.token_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushToken.token)
}
inline std::string* PushToken::mutable_token() {
  std::string* _s = _internal_mutable_token();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.token)
  return _s;
}
inline const std::string& PushToken::_internal_token() const {
  return _impl_.token_.Get();
}
inline void PushToken::_internal_set_token(const std::string& value) {
  ;


  _impl_.token_.Set(value, GetArenaForAllocation());
}
inline std::string* PushToken::_internal_mutable_token() {
  ;
  return _impl_.token_.Mutable( GetArenaForAllocation());
}
inline std::string* PushToken::release_token() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.token)
  return _impl_.token_.Release();
}
inline void PushToken::set_allocated_token(std::string* value) {
  _impl_.token_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.token_.IsDefault()) {
          _impl_.token_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.token)
}

// string user_app_id = 4 [(.google.api.field_behavior) = REQUIRED];
inline void PushToken::clear_user_app_id() {
  _impl_.user_app_id_.ClearToEmpty();
}
inline const std::string& PushToken::user_app_id() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.user_app_id)
  return _internal_user_app_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PushToken::set_user_app_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.user_app_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushToken.user_app_id)
}
inline std::string* PushToken::mutable_user_app_id() {
  std::string* _s = _internal_mutable_user_app_id();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.user_app_id)
  return _s;
}
inline const std::string& PushToken::_internal_user_app_id() const {
  return _impl_.user_app_id_.Get();
}
inline void PushToken::_internal_set_user_app_id(const std::string& value) {
  ;


  _impl_.user_app_id_.Set(value, GetArenaForAllocation());
}
inline std::string* PushToken::_internal_mutable_user_app_id() {
  ;
  return _impl_.user_app_id_.Mutable( GetArenaForAllocation());
}
inline std::string* PushToken::release_user_app_id() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.user_app_id)
  return _impl_.user_app_id_.Release();
}
inline void PushToken::set_allocated_user_app_id(std::string* value) {
  _impl_.user_app_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.user_app_id_.IsDefault()) {
          _impl_.user_app_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.user_app_id)
}

// .google.protobuf.Int32Value user_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline bool PushToken::has_user_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.user_id_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Int32Value& PushToken::_internal_user_id() const {
  const ::PROTOBUF_NAMESPACE_ID::Int32Value* p = _impl_.user_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Int32Value&>(
      ::PROTOBUF_NAMESPACE_ID::_Int32Value_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Int32Value& PushToken::user_id() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.user_id)
  return _internal_user_id();
}
inline void PushToken::unsafe_arena_set_allocated_user_id(
    ::PROTOBUF_NAMESPACE_ID::Int32Value* user_id) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.user_id_);
  }
  _impl_.user_id_ = user_id;
  if (user_id) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushToken.user_id)
}
inline ::PROTOBUF_NAMESPACE_ID::Int32Value* PushToken::release_user_id() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::Int32Value* temp = _impl_.user_id_;
  _impl_.user_id_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Int32Value* PushToken::unsafe_arena_release_user_id() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.user_id)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::Int32Value* temp = _impl_.user_id_;
  _impl_.user_id_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Int32Value* PushToken::_internal_mutable_user_id() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.user_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Int32Value>(GetArenaForAllocation());
    _impl_.user_id_ = p;
  }
  return _impl_.user_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::Int32Value* PushToken::mutable_user_id() {
  ::PROTOBUF_NAMESPACE_ID::Int32Value* _msg = _internal_mutable_user_id();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.user_id)
  return _msg;
}
inline void PushToken::set_allocated_user_id(::PROTOBUF_NAMESPACE_ID::Int32Value* user_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.user_id_);
  }
  if (user_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(user_id));
    if (message_arena != submessage_arena) {
      user_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_id, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.user_id_ = user_id;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.user_id)
}

// .google.protobuf.Timestamp created_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline bool PushToken::has_created_at() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.created_at_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushToken::_internal_created_at() const {
  const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.created_at_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Timestamp&>(
      ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushToken::created_at() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.created_at)
  return _internal_created_at();
}
inline void PushToken::unsafe_arena_set_allocated_created_at(
    ::PROTOBUF_NAMESPACE_ID::Timestamp* created_at) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.created_at_);
  }
  _impl_.created_at_ = created_at;
  if (created_at) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushToken.created_at)
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::release_created_at() {
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.created_at_;
  _impl_.created_at_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::unsafe_arena_release_created_at() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.created_at)
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.created_at_;
  _impl_.created_at_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::_internal_mutable_created_at() {
  _impl_._has_bits_[0] |= 0x00000002u;
  if (_impl_.created_at_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation());
    _impl_.created_at_ = p;
  }
  return _impl_.created_at_;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::mutable_created_at() {
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_created_at();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.created_at)
  return _msg;
}
inline void PushToken::set_allocated_created_at(::PROTOBUF_NAMESPACE_ID::Timestamp* created_at) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.created_at_);
  }
  if (created_at) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(created_at));
    if (message_arena != submessage_arena) {
      created_at = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, created_at, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.created_at_ = created_at;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.created_at)
}

// .google.protobuf.Timestamp changed_at = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline bool PushToken::has_changed_at() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.changed_at_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushToken::_internal_changed_at() const {
  const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.changed_at_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Timestamp&>(
      ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushToken::changed_at() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.changed_at)
  return _internal_changed_at();
}
inline void PushToken::unsafe_arena_set_allocated_changed_at(
    ::PROTOBUF_NAMESPACE_ID::Timestamp* changed_at) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.changed_at_);
  }
  _impl_.changed_at_ = changed_at;
  if (changed_at) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushToken.changed_at)
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::release_changed_at() {
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.changed_at_;
  _impl_.changed_at_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::unsafe_arena_release_changed_at() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.changed_at)
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.changed_at_;
  _impl_.changed_at_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::_internal_mutable_changed_at() {
  _impl_._has_bits_[0] |= 0x00000004u;
  if (_impl_.changed_at_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation());
    _impl_.changed_at_ = p;
  }
  return _impl_.changed_at_;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushToken::mutable_changed_at() {
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_changed_at();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.changed_at)
  return _msg;
}
inline void PushToken::set_allocated_changed_at(::PROTOBUF_NAMESPACE_ID::Timestamp* changed_at) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.changed_at_);
  }
  if (changed_at) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(changed_at));
    if (message_arena != submessage_arena) {
      changed_at = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, changed_at, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.changed_at_ = changed_at;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.changed_at)
}

// string app_version = 8 [(.google.api.field_behavior) = REQUIRED];
inline void PushToken::clear_app_version() {
  _impl_.app_version_.ClearToEmpty();
}
inline const std::string& PushToken::app_version() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushToken.app_version)
  return _internal_app_version();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PushToken::set_app_version(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.app_version_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushToken.app_version)
}
inline std::string* PushToken::mutable_app_version() {
  std::string* _s = _internal_mutable_app_version();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushToken.app_version)
  return _s;
}
inline const std::string& PushToken::_internal_app_version() const {
  return _impl_.app_version_.Get();
}
inline void PushToken::_internal_set_app_version(const std::string& value) {
  ;


  _impl_.app_version_.Set(value, GetArenaForAllocation());
}
inline std::string* PushToken::_internal_mutable_app_version() {
  ;
  return _impl_.app_version_.Mutable( GetArenaForAllocation());
}
inline std::string* PushToken::release_app_version() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushToken.app_version)
  return _impl_.app_version_.Release();
}
inline void PushToken::set_allocated_app_version(std::string* value) {
  _impl_.app_version_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.app_version_.IsDefault()) {
          _impl_.app_version_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.app_version)
}

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

// PushTokenFilter_ValidationError_UserAppIdsInvalid

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

// PushTokenFilter_ValidationError

// .keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid user_app_ids = 1;
inline bool PushTokenFilter_ValidationError::has_user_app_ids() const {
  return reason_case() == kUserAppIds;
}
inline bool PushTokenFilter_ValidationError::_internal_has_user_app_ids() const {
  return reason_case() == kUserAppIds;
}
inline void PushTokenFilter_ValidationError::set_has_user_app_ids() {
  _impl_._oneof_case_[0] = kUserAppIds;
}
inline void PushTokenFilter_ValidationError::clear_user_app_ids() {
  if (reason_case() == kUserAppIds) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.user_app_ids_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* PushTokenFilter_ValidationError::release_user_app_ids() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushTokenFilter.ValidationError.user_app_ids)
  if (reason_case() == kUserAppIds) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* temp = _impl_.reason_.user_app_ids_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.user_app_ids_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid& PushTokenFilter_ValidationError::_internal_user_app_ids() const {
  return reason_case() == kUserAppIds
      ? *_impl_.reason_.user_app_ids_
      : reinterpret_cast<::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid&>(::keyapis::notification::v1::_PushTokenFilter_ValidationError_UserAppIdsInvalid_default_instance_);
}
inline const ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid& PushTokenFilter_ValidationError::user_app_ids() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenFilter.ValidationError.user_app_ids)
  return _internal_user_app_ids();
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* PushTokenFilter_ValidationError::unsafe_arena_release_user_app_ids() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PushTokenFilter.ValidationError.user_app_ids)
  if (reason_case() == kUserAppIds) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* temp = _impl_.reason_.user_app_ids_;
    _impl_.reason_.user_app_ids_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushTokenFilter_ValidationError::unsafe_arena_set_allocated_user_app_ids(::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* user_app_ids) {
  clear_reason();
  if (user_app_ids) {
    set_has_user_app_ids();
    _impl_.reason_.user_app_ids_ = user_app_ids;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushTokenFilter.ValidationError.user_app_ids)
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* PushTokenFilter_ValidationError::_internal_mutable_user_app_ids() {
  if (reason_case() != kUserAppIds) {
    clear_reason();
    set_has_user_app_ids();
    _impl_.reason_.user_app_ids_ = CreateMaybeMessage< ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid >(GetArenaForAllocation());
  }
  return _impl_.reason_.user_app_ids_;
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* PushTokenFilter_ValidationError::mutable_user_app_ids() {
  ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* _msg = _internal_mutable_user_app_ids();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenFilter.ValidationError.user_app_ids)
  return _msg;
}

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

// PushTokenFilter

// repeated .keyapis.notification.v1.PushToken.Type types = 1;
inline int PushTokenFilter::_internal_types_size() const {
  return _impl_.types_.size();
}
inline int PushTokenFilter::types_size() const {
  return _internal_types_size();
}
inline void PushTokenFilter::clear_types() {
  _internal_mutable_types()->Clear();
}
inline ::keyapis::notification::v1::PushToken_Type PushTokenFilter::types(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenFilter.types)
  return _internal_types(index);
}
inline void PushTokenFilter::set_types(int index, ::keyapis::notification::v1::PushToken_Type value) {
  _internal_mutable_types()->Set(index, value);
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushTokenFilter.types)
}
inline void PushTokenFilter::add_types(::keyapis::notification::v1::PushToken_Type value) {
  _internal_add_types(value);
  // @@protoc_insertion_point(field_add:keyapis.notification.v1.PushTokenFilter.types)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& PushTokenFilter::types() const {
  // @@protoc_insertion_point(field_list:keyapis.notification.v1.PushTokenFilter.types)
  return _internal_types();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* PushTokenFilter::mutable_types() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.notification.v1.PushTokenFilter.types)
  return _internal_mutable_types();
}
inline ::keyapis::notification::v1::PushToken_Type PushTokenFilter::_internal_types(int index) const {
  return static_cast<::keyapis::notification::v1::PushToken_Type>(_internal_types().Get(index));
}
inline void PushTokenFilter::_internal_add_types(::keyapis::notification::v1::PushToken_Type value) {
  _internal_mutable_types()->Add(value);
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& PushTokenFilter::_internal_types() const {
  return _impl_.types_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* PushTokenFilter::_internal_mutable_types() {
  return &_impl_.types_;
}

// repeated string user_app_ids = 2;
inline int PushTokenFilter::_internal_user_app_ids_size() const {
  return _impl_.user_app_ids_.size();
}
inline int PushTokenFilter::user_app_ids_size() const {
  return _internal_user_app_ids_size();
}
inline void PushTokenFilter::clear_user_app_ids() {
  _internal_mutable_user_app_ids()->Clear();
}
inline std::string* PushTokenFilter::add_user_app_ids() {
  std::string* _s = _internal_add_user_app_ids();
  // @@protoc_insertion_point(field_add_mutable:keyapis.notification.v1.PushTokenFilter.user_app_ids)
  return _s;
}
inline const std::string& PushTokenFilter::user_app_ids(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenFilter.user_app_ids)
  return _internal_user_app_ids(index);
}
inline std::string* PushTokenFilter::mutable_user_app_ids(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenFilter.user_app_ids)
  return _internal_mutable_user_app_ids()->Mutable(index);
}
inline void PushTokenFilter::set_user_app_ids(int index, const std::string& value) {
  _internal_mutable_user_app_ids()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::set_user_app_ids(int index, std::string&& value) {
  _internal_mutable_user_app_ids()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::set_user_app_ids(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_user_app_ids()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::set_user_app_ids(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_user_app_ids()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::set_user_app_ids(int index, absl::string_view value) {
  _internal_mutable_user_app_ids()->Mutable(index)->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_set_string_piece:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::add_user_app_ids(const std::string& value) {
  _internal_mutable_user_app_ids()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::add_user_app_ids(std::string&& value) {
  _internal_mutable_user_app_ids()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::add_user_app_ids(const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_user_app_ids()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::add_user_app_ids(const char* value, std::size_t size) {
  _internal_mutable_user_app_ids()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline void PushTokenFilter::add_user_app_ids(absl::string_view value) {
  _internal_mutable_user_app_ids()->Add()->assign(value.data(), value.size());
  // @@protoc_insertion_point(field_add_string_piece:keyapis.notification.v1.PushTokenFilter.user_app_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
PushTokenFilter::user_app_ids() const {
  // @@protoc_insertion_point(field_list:keyapis.notification.v1.PushTokenFilter.user_app_ids)
  return _internal_user_app_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* PushTokenFilter::mutable_user_app_ids() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.notification.v1.PushTokenFilter.user_app_ids)
  return _internal_mutable_user_app_ids();
}
inline const std::string& PushTokenFilter::_internal_user_app_ids(int index) const {
  return _internal_user_app_ids().Get(index);
}
inline std::string* PushTokenFilter::_internal_add_user_app_ids() {
  return _internal_mutable_user_app_ids()->Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
PushTokenFilter::_internal_user_app_ids() const {
  return _impl_.user_app_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
PushTokenFilter::_internal_mutable_user_app_ids() {
  return &_impl_.user_app_ids_;
}

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

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

// .google.protobuf.Timestamp begin_created_at = 4;
inline bool PushTokenFilter::has_begin_created_at() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.begin_created_at_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::_internal_begin_created_at() const {
  const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.begin_created_at_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Timestamp&>(
      ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::begin_created_at() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenFilter.begin_created_at)
  return _internal_begin_created_at();
}
inline void PushTokenFilter::unsafe_arena_set_allocated_begin_created_at(
    ::PROTOBUF_NAMESPACE_ID::Timestamp* begin_created_at) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.begin_created_at_);
  }
  _impl_.begin_created_at_ = begin_created_at;
  if (begin_created_at) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushTokenFilter.begin_created_at)
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::release_begin_created_at() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.begin_created_at_;
  _impl_.begin_created_at_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::unsafe_arena_release_begin_created_at() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushTokenFilter.begin_created_at)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.begin_created_at_;
  _impl_.begin_created_at_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::_internal_mutable_begin_created_at() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.begin_created_at_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation());
    _impl_.begin_created_at_ = p;
  }
  return _impl_.begin_created_at_;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::mutable_begin_created_at() {
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_begin_created_at();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenFilter.begin_created_at)
  return _msg;
}
inline void PushTokenFilter::set_allocated_begin_created_at(::PROTOBUF_NAMESPACE_ID::Timestamp* begin_created_at) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.begin_created_at_);
  }
  if (begin_created_at) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(begin_created_at));
    if (message_arena != submessage_arena) {
      begin_created_at = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, begin_created_at, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.begin_created_at_ = begin_created_at;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushTokenFilter.begin_created_at)
}

// .google.protobuf.Timestamp end_created_at = 5;
inline bool PushTokenFilter::has_end_created_at() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.end_created_at_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::_internal_end_created_at() const {
  const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.end_created_at_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Timestamp&>(
      ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::end_created_at() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenFilter.end_created_at)
  return _internal_end_created_at();
}
inline void PushTokenFilter::unsafe_arena_set_allocated_end_created_at(
    ::PROTOBUF_NAMESPACE_ID::Timestamp* end_created_at) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.end_created_at_);
  }
  _impl_.end_created_at_ = end_created_at;
  if (end_created_at) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushTokenFilter.end_created_at)
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::release_end_created_at() {
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.end_created_at_;
  _impl_.end_created_at_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::unsafe_arena_release_end_created_at() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushTokenFilter.end_created_at)
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.end_created_at_;
  _impl_.end_created_at_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::_internal_mutable_end_created_at() {
  _impl_._has_bits_[0] |= 0x00000002u;
  if (_impl_.end_created_at_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation());
    _impl_.end_created_at_ = p;
  }
  return _impl_.end_created_at_;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::mutable_end_created_at() {
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_end_created_at();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenFilter.end_created_at)
  return _msg;
}
inline void PushTokenFilter::set_allocated_end_created_at(::PROTOBUF_NAMESPACE_ID::Timestamp* end_created_at) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.end_created_at_);
  }
  if (end_created_at) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(end_created_at));
    if (message_arena != submessage_arena) {
      end_created_at = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, end_created_at, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.end_created_at_ = end_created_at;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushTokenFilter.end_created_at)
}

// .google.protobuf.Timestamp begin_changed_at = 6;
inline bool PushTokenFilter::has_begin_changed_at() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.begin_changed_at_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::_internal_begin_changed_at() const {
  const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.begin_changed_at_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Timestamp&>(
      ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::begin_changed_at() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenFilter.begin_changed_at)
  return _internal_begin_changed_at();
}
inline void PushTokenFilter::unsafe_arena_set_allocated_begin_changed_at(
    ::PROTOBUF_NAMESPACE_ID::Timestamp* begin_changed_at) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.begin_changed_at_);
  }
  _impl_.begin_changed_at_ = begin_changed_at;
  if (begin_changed_at) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushTokenFilter.begin_changed_at)
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::release_begin_changed_at() {
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.begin_changed_at_;
  _impl_.begin_changed_at_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::unsafe_arena_release_begin_changed_at() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushTokenFilter.begin_changed_at)
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.begin_changed_at_;
  _impl_.begin_changed_at_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::_internal_mutable_begin_changed_at() {
  _impl_._has_bits_[0] |= 0x00000004u;
  if (_impl_.begin_changed_at_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation());
    _impl_.begin_changed_at_ = p;
  }
  return _impl_.begin_changed_at_;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::mutable_begin_changed_at() {
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_begin_changed_at();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenFilter.begin_changed_at)
  return _msg;
}
inline void PushTokenFilter::set_allocated_begin_changed_at(::PROTOBUF_NAMESPACE_ID::Timestamp* begin_changed_at) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.begin_changed_at_);
  }
  if (begin_changed_at) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(begin_changed_at));
    if (message_arena != submessage_arena) {
      begin_changed_at = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, begin_changed_at, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.begin_changed_at_ = begin_changed_at;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushTokenFilter.begin_changed_at)
}

// .google.protobuf.Timestamp end_changed_at = 7;
inline bool PushTokenFilter::has_end_changed_at() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.end_changed_at_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::_internal_end_changed_at() const {
  const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.end_changed_at_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Timestamp&>(
      ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& PushTokenFilter::end_changed_at() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenFilter.end_changed_at)
  return _internal_end_changed_at();
}
inline void PushTokenFilter::unsafe_arena_set_allocated_end_changed_at(
    ::PROTOBUF_NAMESPACE_ID::Timestamp* end_changed_at) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.end_changed_at_);
  }
  _impl_.end_changed_at_ = end_changed_at;
  if (end_changed_at) {
    _impl_._has_bits_[0] |= 0x00000008u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000008u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushTokenFilter.end_changed_at)
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::release_end_changed_at() {
  _impl_._has_bits_[0] &= ~0x00000008u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.end_changed_at_;
  _impl_.end_changed_at_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::unsafe_arena_release_end_changed_at() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushTokenFilter.end_changed_at)
  _impl_._has_bits_[0] &= ~0x00000008u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.end_changed_at_;
  _impl_.end_changed_at_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::_internal_mutable_end_changed_at() {
  _impl_._has_bits_[0] |= 0x00000008u;
  if (_impl_.end_changed_at_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation());
    _impl_.end_changed_at_ = p;
  }
  return _impl_.end_changed_at_;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* PushTokenFilter::mutable_end_changed_at() {
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_end_changed_at();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenFilter.end_changed_at)
  return _msg;
}
inline void PushTokenFilter::set_allocated_end_changed_at(::PROTOBUF_NAMESPACE_ID::Timestamp* end_changed_at) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.end_changed_at_);
  }
  if (end_changed_at) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(end_changed_at));
    if (message_arena != submessage_arena) {
      end_changed_at = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, end_changed_at, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000008u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000008u;
  }
  _impl_.end_changed_at_ = end_changed_at;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushTokenFilter.end_changed_at)
}

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

// PushTokenPaging_ValidationError_LimitInvalid

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

// PushTokenPaging_ValidationError_OffsetInvalid

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

// PushTokenPaging_ValidationError

// .keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid limit = 1;
inline bool PushTokenPaging_ValidationError::has_limit() const {
  return reason_case() == kLimit;
}
inline bool PushTokenPaging_ValidationError::_internal_has_limit() const {
  return reason_case() == kLimit;
}
inline void PushTokenPaging_ValidationError::set_has_limit() {
  _impl_._oneof_case_[0] = kLimit;
}
inline void PushTokenPaging_ValidationError::clear_limit() {
  if (reason_case() == kLimit) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.limit_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* PushTokenPaging_ValidationError::release_limit() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushTokenPaging.ValidationError.limit)
  if (reason_case() == kLimit) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* temp = _impl_.reason_.limit_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.limit_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid& PushTokenPaging_ValidationError::_internal_limit() const {
  return reason_case() == kLimit
      ? *_impl_.reason_.limit_
      : reinterpret_cast<::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid&>(::keyapis::notification::v1::_PushTokenPaging_ValidationError_LimitInvalid_default_instance_);
}
inline const ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid& PushTokenPaging_ValidationError::limit() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenPaging.ValidationError.limit)
  return _internal_limit();
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* PushTokenPaging_ValidationError::unsafe_arena_release_limit() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PushTokenPaging.ValidationError.limit)
  if (reason_case() == kLimit) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* temp = _impl_.reason_.limit_;
    _impl_.reason_.limit_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushTokenPaging_ValidationError::unsafe_arena_set_allocated_limit(::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* limit) {
  clear_reason();
  if (limit) {
    set_has_limit();
    _impl_.reason_.limit_ = limit;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushTokenPaging.ValidationError.limit)
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* PushTokenPaging_ValidationError::_internal_mutable_limit() {
  if (reason_case() != kLimit) {
    clear_reason();
    set_has_limit();
    _impl_.reason_.limit_ = CreateMaybeMessage< ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid >(GetArenaForAllocation());
  }
  return _impl_.reason_.limit_;
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* PushTokenPaging_ValidationError::mutable_limit() {
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* _msg = _internal_mutable_limit();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenPaging.ValidationError.limit)
  return _msg;
}

// .keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid offset = 2;
inline bool PushTokenPaging_ValidationError::has_offset() const {
  return reason_case() == kOffset;
}
inline bool PushTokenPaging_ValidationError::_internal_has_offset() const {
  return reason_case() == kOffset;
}
inline void PushTokenPaging_ValidationError::set_has_offset() {
  _impl_._oneof_case_[0] = kOffset;
}
inline void PushTokenPaging_ValidationError::clear_offset() {
  if (reason_case() == kOffset) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.offset_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* PushTokenPaging_ValidationError::release_offset() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PushTokenPaging.ValidationError.offset)
  if (reason_case() == kOffset) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* temp = _impl_.reason_.offset_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.offset_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid& PushTokenPaging_ValidationError::_internal_offset() const {
  return reason_case() == kOffset
      ? *_impl_.reason_.offset_
      : reinterpret_cast<::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid&>(::keyapis::notification::v1::_PushTokenPaging_ValidationError_OffsetInvalid_default_instance_);
}
inline const ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid& PushTokenPaging_ValidationError::offset() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PushTokenPaging.ValidationError.offset)
  return _internal_offset();
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* PushTokenPaging_ValidationError::unsafe_arena_release_offset() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PushTokenPaging.ValidationError.offset)
  if (reason_case() == kOffset) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* temp = _impl_.reason_.offset_;
    _impl_.reason_.offset_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushTokenPaging_ValidationError::unsafe_arena_set_allocated_offset(::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* offset) {
  clear_reason();
  if (offset) {
    set_has_offset();
    _impl_.reason_.offset_ = offset;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PushTokenPaging.ValidationError.offset)
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* PushTokenPaging_ValidationError::_internal_mutable_offset() {
  if (reason_case() != kOffset) {
    clear_reason();
    set_has_offset();
    _impl_.reason_.offset_ = CreateMaybeMessage< ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid >(GetArenaForAllocation());
  }
  return _impl_.reason_.offset_;
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* PushTokenPaging_ValidationError::mutable_offset() {
  ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* _msg = _internal_mutable_offset();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PushTokenPaging.ValidationError.offset)
  return _msg;
}

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

// PushTokenPaging

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

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

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

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

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

// PostPushTokenRequest

// .keyapis.notification.v1.PushToken data = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool PostPushTokenRequest::has_data() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.data_ != nullptr);
  return value;
}
inline void PostPushTokenRequest::clear_data() {
  if (_impl_.data_ != nullptr) _impl_.data_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::notification::v1::PushToken& PostPushTokenRequest::_internal_data() const {
  const ::keyapis::notification::v1::PushToken* p = _impl_.data_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::notification::v1::PushToken&>(
      ::keyapis::notification::v1::_PushToken_default_instance_);
}
inline const ::keyapis::notification::v1::PushToken& PostPushTokenRequest::data() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PostPushTokenRequest.data)
  return _internal_data();
}
inline void PostPushTokenRequest::unsafe_arena_set_allocated_data(
    ::keyapis::notification::v1::PushToken* data) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.data_);
  }
  _impl_.data_ = data;
  if (data) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PostPushTokenRequest.data)
}
inline ::keyapis::notification::v1::PushToken* PostPushTokenRequest::release_data() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::notification::v1::PushToken* temp = _impl_.data_;
  _impl_.data_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::notification::v1::PushToken* PostPushTokenRequest::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PostPushTokenRequest.data)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::notification::v1::PushToken* temp = _impl_.data_;
  _impl_.data_ = nullptr;
  return temp;
}
inline ::keyapis::notification::v1::PushToken* PostPushTokenRequest::_internal_mutable_data() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.data_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::notification::v1::PushToken>(GetArenaForAllocation());
    _impl_.data_ = p;
  }
  return _impl_.data_;
}
inline ::keyapis::notification::v1::PushToken* PostPushTokenRequest::mutable_data() {
  ::keyapis::notification::v1::PushToken* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PostPushTokenRequest.data)
  return _msg;
}
inline void PostPushTokenRequest::set_allocated_data(::keyapis::notification::v1::PushToken* data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.data_;
  }
  if (data) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(data);
    if (message_arena != submessage_arena) {
      data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, data, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.data_ = data;
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PostPushTokenRequest.data)
}

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

// PostPushTokenResponse_Error

// .keyapis.notification.v1.PushToken.ValidationError push_token_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
inline bool PostPushTokenResponse_Error::has_push_token_validation() const {
  return reason_case() == kPushTokenValidation;
}
inline bool PostPushTokenResponse_Error::_internal_has_push_token_validation() const {
  return reason_case() == kPushTokenValidation;
}
inline void PostPushTokenResponse_Error::set_has_push_token_validation() {
  _impl_._oneof_case_[0] = kPushTokenValidation;
}
inline void PostPushTokenResponse_Error::clear_push_token_validation() {
  if (reason_case() == kPushTokenValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.push_token_validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushToken_ValidationError* PostPushTokenResponse_Error::release_push_token_validation() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_validation)
  if (reason_case() == kPushTokenValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_ValidationError* temp = _impl_.reason_.push_token_validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.push_token_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushToken_ValidationError& PostPushTokenResponse_Error::_internal_push_token_validation() const {
  return reason_case() == kPushTokenValidation
      ? *_impl_.reason_.push_token_validation_
      : reinterpret_cast<::keyapis::notification::v1::PushToken_ValidationError&>(::keyapis::notification::v1::_PushToken_ValidationError_default_instance_);
}
inline const ::keyapis::notification::v1::PushToken_ValidationError& PostPushTokenResponse_Error::push_token_validation() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_validation)
  return _internal_push_token_validation();
}
inline ::keyapis::notification::v1::PushToken_ValidationError* PostPushTokenResponse_Error::unsafe_arena_release_push_token_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_validation)
  if (reason_case() == kPushTokenValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_ValidationError* temp = _impl_.reason_.push_token_validation_;
    _impl_.reason_.push_token_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostPushTokenResponse_Error::unsafe_arena_set_allocated_push_token_validation(::keyapis::notification::v1::PushToken_ValidationError* push_token_validation) {
  clear_reason();
  if (push_token_validation) {
    set_has_push_token_validation();
    _impl_.reason_.push_token_validation_ = push_token_validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_validation)
}
inline ::keyapis::notification::v1::PushToken_ValidationError* PostPushTokenResponse_Error::_internal_mutable_push_token_validation() {
  if (reason_case() != kPushTokenValidation) {
    clear_reason();
    set_has_push_token_validation();
    _impl_.reason_.push_token_validation_ = CreateMaybeMessage< ::keyapis::notification::v1::PushToken_ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.push_token_validation_;
}
inline ::keyapis::notification::v1::PushToken_ValidationError* PostPushTokenResponse_Error::mutable_push_token_validation() {
  ::keyapis::notification::v1::PushToken_ValidationError* _msg = _internal_mutable_push_token_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_validation)
  return _msg;
}

// .keyapis.notification.v1.PushToken.SavingError push_token_saving = 2;
inline bool PostPushTokenResponse_Error::has_push_token_saving() const {
  return reason_case() == kPushTokenSaving;
}
inline bool PostPushTokenResponse_Error::_internal_has_push_token_saving() const {
  return reason_case() == kPushTokenSaving;
}
inline void PostPushTokenResponse_Error::set_has_push_token_saving() {
  _impl_._oneof_case_[0] = kPushTokenSaving;
}
inline void PostPushTokenResponse_Error::clear_push_token_saving() {
  if (reason_case() == kPushTokenSaving) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.push_token_saving_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushToken_SavingError* PostPushTokenResponse_Error::release_push_token_saving() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_saving)
  if (reason_case() == kPushTokenSaving) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_SavingError* temp = _impl_.reason_.push_token_saving_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.push_token_saving_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushToken_SavingError& PostPushTokenResponse_Error::_internal_push_token_saving() const {
  return reason_case() == kPushTokenSaving
      ? *_impl_.reason_.push_token_saving_
      : reinterpret_cast<::keyapis::notification::v1::PushToken_SavingError&>(::keyapis::notification::v1::_PushToken_SavingError_default_instance_);
}
inline const ::keyapis::notification::v1::PushToken_SavingError& PostPushTokenResponse_Error::push_token_saving() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_saving)
  return _internal_push_token_saving();
}
inline ::keyapis::notification::v1::PushToken_SavingError* PostPushTokenResponse_Error::unsafe_arena_release_push_token_saving() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_saving)
  if (reason_case() == kPushTokenSaving) {
    clear_has_reason();
    ::keyapis::notification::v1::PushToken_SavingError* temp = _impl_.reason_.push_token_saving_;
    _impl_.reason_.push_token_saving_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostPushTokenResponse_Error::unsafe_arena_set_allocated_push_token_saving(::keyapis::notification::v1::PushToken_SavingError* push_token_saving) {
  clear_reason();
  if (push_token_saving) {
    set_has_push_token_saving();
    _impl_.reason_.push_token_saving_ = push_token_saving;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_saving)
}
inline ::keyapis::notification::v1::PushToken_SavingError* PostPushTokenResponse_Error::_internal_mutable_push_token_saving() {
  if (reason_case() != kPushTokenSaving) {
    clear_reason();
    set_has_push_token_saving();
    _impl_.reason_.push_token_saving_ = CreateMaybeMessage< ::keyapis::notification::v1::PushToken_SavingError >(GetArenaForAllocation());
  }
  return _impl_.reason_.push_token_saving_;
}
inline ::keyapis::notification::v1::PushToken_SavingError* PostPushTokenResponse_Error::mutable_push_token_saving() {
  ::keyapis::notification::v1::PushToken_SavingError* _msg = _internal_mutable_push_token_saving();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_saving)
  return _msg;
}

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

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

// PostPushTokenResponse

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

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

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

// GetPushTokenListRequest

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

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

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

// GetPushTokenCountRequest

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

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

// GetPushTokenCountResponse_Error

// .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
inline bool GetPushTokenCountResponse_Error::has_push_token_filter_validation() const {
  return reason_case() == kPushTokenFilterValidation;
}
inline bool GetPushTokenCountResponse_Error::_internal_has_push_token_filter_validation() const {
  return reason_case() == kPushTokenFilterValidation;
}
inline void GetPushTokenCountResponse_Error::set_has_push_token_filter_validation() {
  _impl_._oneof_case_[0] = kPushTokenFilterValidation;
}
inline void GetPushTokenCountResponse_Error::clear_push_token_filter_validation() {
  if (reason_case() == kPushTokenFilterValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.push_token_filter_validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenCountResponse_Error::release_push_token_filter_validation() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.GetPushTokenCountResponse.Error.push_token_filter_validation)
  if (reason_case() == kPushTokenFilterValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenFilter_ValidationError* temp = _impl_.reason_.push_token_filter_validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.push_token_filter_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushTokenFilter_ValidationError& GetPushTokenCountResponse_Error::_internal_push_token_filter_validation() const {
  return reason_case() == kPushTokenFilterValidation
      ? *_impl_.reason_.push_token_filter_validation_
      : reinterpret_cast<::keyapis::notification::v1::PushTokenFilter_ValidationError&>(::keyapis::notification::v1::_PushTokenFilter_ValidationError_default_instance_);
}
inline const ::keyapis::notification::v1::PushTokenFilter_ValidationError& GetPushTokenCountResponse_Error::push_token_filter_validation() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.GetPushTokenCountResponse.Error.push_token_filter_validation)
  return _internal_push_token_filter_validation();
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenCountResponse_Error::unsafe_arena_release_push_token_filter_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.GetPushTokenCountResponse.Error.push_token_filter_validation)
  if (reason_case() == kPushTokenFilterValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenFilter_ValidationError* temp = _impl_.reason_.push_token_filter_validation_;
    _impl_.reason_.push_token_filter_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetPushTokenCountResponse_Error::unsafe_arena_set_allocated_push_token_filter_validation(::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation) {
  clear_reason();
  if (push_token_filter_validation) {
    set_has_push_token_filter_validation();
    _impl_.reason_.push_token_filter_validation_ = push_token_filter_validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.GetPushTokenCountResponse.Error.push_token_filter_validation)
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenCountResponse_Error::_internal_mutable_push_token_filter_validation() {
  if (reason_case() != kPushTokenFilterValidation) {
    clear_reason();
    set_has_push_token_filter_validation();
    _impl_.reason_.push_token_filter_validation_ = CreateMaybeMessage< ::keyapis::notification::v1::PushTokenFilter_ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.push_token_filter_validation_;
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenCountResponse_Error::mutable_push_token_filter_validation() {
  ::keyapis::notification::v1::PushTokenFilter_ValidationError* _msg = _internal_mutable_push_token_filter_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.GetPushTokenCountResponse.Error.push_token_filter_validation)
  return _msg;
}

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

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

// GetPushTokenCountResponse

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

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

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

// GetPushTokenListResponse_Error

// .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
inline bool GetPushTokenListResponse_Error::has_push_token_filter_validation() const {
  return reason_case() == kPushTokenFilterValidation;
}
inline bool GetPushTokenListResponse_Error::_internal_has_push_token_filter_validation() const {
  return reason_case() == kPushTokenFilterValidation;
}
inline void GetPushTokenListResponse_Error::set_has_push_token_filter_validation() {
  _impl_._oneof_case_[0] = kPushTokenFilterValidation;
}
inline void GetPushTokenListResponse_Error::clear_push_token_filter_validation() {
  if (reason_case() == kPushTokenFilterValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.push_token_filter_validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenListResponse_Error::release_push_token_filter_validation() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_filter_validation)
  if (reason_case() == kPushTokenFilterValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenFilter_ValidationError* temp = _impl_.reason_.push_token_filter_validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.push_token_filter_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushTokenFilter_ValidationError& GetPushTokenListResponse_Error::_internal_push_token_filter_validation() const {
  return reason_case() == kPushTokenFilterValidation
      ? *_impl_.reason_.push_token_filter_validation_
      : reinterpret_cast<::keyapis::notification::v1::PushTokenFilter_ValidationError&>(::keyapis::notification::v1::_PushTokenFilter_ValidationError_default_instance_);
}
inline const ::keyapis::notification::v1::PushTokenFilter_ValidationError& GetPushTokenListResponse_Error::push_token_filter_validation() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_filter_validation)
  return _internal_push_token_filter_validation();
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenListResponse_Error::unsafe_arena_release_push_token_filter_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_filter_validation)
  if (reason_case() == kPushTokenFilterValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenFilter_ValidationError* temp = _impl_.reason_.push_token_filter_validation_;
    _impl_.reason_.push_token_filter_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetPushTokenListResponse_Error::unsafe_arena_set_allocated_push_token_filter_validation(::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation) {
  clear_reason();
  if (push_token_filter_validation) {
    set_has_push_token_filter_validation();
    _impl_.reason_.push_token_filter_validation_ = push_token_filter_validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_filter_validation)
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenListResponse_Error::_internal_mutable_push_token_filter_validation() {
  if (reason_case() != kPushTokenFilterValidation) {
    clear_reason();
    set_has_push_token_filter_validation();
    _impl_.reason_.push_token_filter_validation_ = CreateMaybeMessage< ::keyapis::notification::v1::PushTokenFilter_ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.push_token_filter_validation_;
}
inline ::keyapis::notification::v1::PushTokenFilter_ValidationError* GetPushTokenListResponse_Error::mutable_push_token_filter_validation() {
  ::keyapis::notification::v1::PushTokenFilter_ValidationError* _msg = _internal_mutable_push_token_filter_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_filter_validation)
  return _msg;
}

// .keyapis.notification.v1.PushTokenPaging.ValidationError push_token_paging_validation = 2 [deprecated = true, (.google.api.field_visibility) = {
inline bool GetPushTokenListResponse_Error::has_push_token_paging_validation() const {
  return reason_case() == kPushTokenPagingValidation;
}
inline bool GetPushTokenListResponse_Error::_internal_has_push_token_paging_validation() const {
  return reason_case() == kPushTokenPagingValidation;
}
inline void GetPushTokenListResponse_Error::set_has_push_token_paging_validation() {
  _impl_._oneof_case_[0] = kPushTokenPagingValidation;
}
inline void GetPushTokenListResponse_Error::clear_push_token_paging_validation() {
  if (reason_case() == kPushTokenPagingValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.push_token_paging_validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError* GetPushTokenListResponse_Error::release_push_token_paging_validation() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_paging_validation)
  if (reason_case() == kPushTokenPagingValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenPaging_ValidationError* temp = _impl_.reason_.push_token_paging_validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.push_token_paging_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::notification::v1::PushTokenPaging_ValidationError& GetPushTokenListResponse_Error::_internal_push_token_paging_validation() const {
  return reason_case() == kPushTokenPagingValidation
      ? *_impl_.reason_.push_token_paging_validation_
      : reinterpret_cast<::keyapis::notification::v1::PushTokenPaging_ValidationError&>(::keyapis::notification::v1::_PushTokenPaging_ValidationError_default_instance_);
}
inline const ::keyapis::notification::v1::PushTokenPaging_ValidationError& GetPushTokenListResponse_Error::push_token_paging_validation() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_paging_validation)
  return _internal_push_token_paging_validation();
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError* GetPushTokenListResponse_Error::unsafe_arena_release_push_token_paging_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_paging_validation)
  if (reason_case() == kPushTokenPagingValidation) {
    clear_has_reason();
    ::keyapis::notification::v1::PushTokenPaging_ValidationError* temp = _impl_.reason_.push_token_paging_validation_;
    _impl_.reason_.push_token_paging_validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetPushTokenListResponse_Error::unsafe_arena_set_allocated_push_token_paging_validation(::keyapis::notification::v1::PushTokenPaging_ValidationError* push_token_paging_validation) {
  clear_reason();
  if (push_token_paging_validation) {
    set_has_push_token_paging_validation();
    _impl_.reason_.push_token_paging_validation_ = push_token_paging_validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_paging_validation)
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError* GetPushTokenListResponse_Error::_internal_mutable_push_token_paging_validation() {
  if (reason_case() != kPushTokenPagingValidation) {
    clear_reason();
    set_has_push_token_paging_validation();
    _impl_.reason_.push_token_paging_validation_ = CreateMaybeMessage< ::keyapis::notification::v1::PushTokenPaging_ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.push_token_paging_validation_;
}
inline ::keyapis::notification::v1::PushTokenPaging_ValidationError* GetPushTokenListResponse_Error::mutable_push_token_paging_validation() {
  ::keyapis::notification::v1::PushTokenPaging_ValidationError* _msg = _internal_mutable_push_token_paging_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_paging_validation)
  return _msg;
}

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

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

// GetPushTokenListResponse

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

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

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

// DeletePushTokenRequest

// int32 id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void DeletePushTokenRequest::clear_id() {
  _impl_.id_ = 0;
}
inline ::int32_t DeletePushTokenRequest::id() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.DeletePushTokenRequest.id)
  return _internal_id();
}
inline void DeletePushTokenRequest::set_id(::int32_t value) {
  _internal_set_id(value);
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.DeletePushTokenRequest.id)
}
inline ::int32_t DeletePushTokenRequest::_internal_id() const {
  return _impl_.id_;
}
inline void DeletePushTokenRequest::_internal_set_id(::int32_t value) {
  ;
  _impl_.id_ = value;
}

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

// DeletePushTokenResponse_Error

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

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

// DeletePushTokenResponse

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

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

// DeletePushTokenUserIdRequest

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

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

// DeletePushTokenUserIdResponse_Error

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

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

// DeletePushTokenUserIdResponse

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

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

// DeletePushTokenUserAppIdRequest

// string user_app_id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void DeletePushTokenUserAppIdRequest::clear_user_app_id() {
  _impl_.user_app_id_.ClearToEmpty();
}
inline const std::string& DeletePushTokenUserAppIdRequest::user_app_id() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.DeletePushTokenUserAppIdRequest.user_app_id)
  return _internal_user_app_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void DeletePushTokenUserAppIdRequest::set_user_app_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.user_app_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.DeletePushTokenUserAppIdRequest.user_app_id)
}
inline std::string* DeletePushTokenUserAppIdRequest::mutable_user_app_id() {
  std::string* _s = _internal_mutable_user_app_id();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.DeletePushTokenUserAppIdRequest.user_app_id)
  return _s;
}
inline const std::string& DeletePushTokenUserAppIdRequest::_internal_user_app_id() const {
  return _impl_.user_app_id_.Get();
}
inline void DeletePushTokenUserAppIdRequest::_internal_set_user_app_id(const std::string& value) {
  ;


  _impl_.user_app_id_.Set(value, GetArenaForAllocation());
}
inline std::string* DeletePushTokenUserAppIdRequest::_internal_mutable_user_app_id() {
  ;
  return _impl_.user_app_id_.Mutable( GetArenaForAllocation());
}
inline std::string* DeletePushTokenUserAppIdRequest::release_user_app_id() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.DeletePushTokenUserAppIdRequest.user_app_id)
  return _impl_.user_app_id_.Release();
}
inline void DeletePushTokenUserAppIdRequest::set_allocated_user_app_id(std::string* value) {
  _impl_.user_app_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.user_app_id_.IsDefault()) {
          _impl_.user_app_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.DeletePushTokenUserAppIdRequest.user_app_id)
}

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

// DeletePushTokenUserAppIdResponse_Error

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

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

// DeletePushTokenUserAppIdResponse

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

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

// ValidationError

// string path = 1 [(.google.api.field_behavior) = REQUIRED];
inline void ValidationError::clear_path() {
  _impl_.path_.ClearToEmpty();
}
inline const std::string& ValidationError::path() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.ValidationError.path)
  return _internal_path();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void ValidationError::set_path(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.path_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.ValidationError.path)
}
inline std::string* ValidationError::mutable_path() {
  std::string* _s = _internal_mutable_path();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.ValidationError.path)
  return _s;
}
inline const std::string& ValidationError::_internal_path() const {
  return _impl_.path_.Get();
}
inline void ValidationError::_internal_set_path(const std::string& value) {
  ;


  _impl_.path_.Set(value, GetArenaForAllocation());
}
inline std::string* ValidationError::_internal_mutable_path() {
  ;
  return _impl_.path_.Mutable( GetArenaForAllocation());
}
inline std::string* ValidationError::release_path() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.ValidationError.path)
  return _impl_.path_.Release();
}
inline void ValidationError::set_allocated_path(std::string* value) {
  _impl_.path_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.path_.IsDefault()) {
          _impl_.path_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.ValidationError.path)
}

// string message = 2 [(.google.api.field_behavior) = REQUIRED];
inline void ValidationError::clear_message() {
  _impl_.message_.ClearToEmpty();
}
inline const std::string& ValidationError::message() const {
  // @@protoc_insertion_point(field_get:keyapis.notification.v1.ValidationError.message)
  return _internal_message();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void ValidationError::set_message(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.message_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.notification.v1.ValidationError.message)
}
inline std::string* ValidationError::mutable_message() {
  std::string* _s = _internal_mutable_message();
  // @@protoc_insertion_point(field_mutable:keyapis.notification.v1.ValidationError.message)
  return _s;
}
inline const std::string& ValidationError::_internal_message() const {
  return _impl_.message_.Get();
}
inline void ValidationError::_internal_set_message(const std::string& value) {
  ;


  _impl_.message_.Set(value, GetArenaForAllocation());
}
inline std::string* ValidationError::_internal_mutable_message() {
  ;
  return _impl_.message_.Mutable( GetArenaForAllocation());
}
inline std::string* ValidationError::release_message() {
  // @@protoc_insertion_point(field_release:keyapis.notification.v1.ValidationError.message)
  return _impl_.message_.Release();
}
inline void ValidationError::set_allocated_message(std::string* value) {
  _impl_.message_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.message_.IsDefault()) {
          _impl_.message_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.ValidationError.message)
}

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

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


PROTOBUF_NAMESPACE_OPEN

template <>
struct is_proto_enum<::keyapis::notification::v1::PushToken_Type> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::notification::v1::PushTokenPaging_OrderByType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::notification::v1::PushTokenPaging_DirectionType> : std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_keyapis_2fnotification_2fv1_2fkeyapis_5fnotification_5fpush_5ftoken_5fv1_2eproto_2epb_2eh
