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

#include "keyapis/notification/v1/keyapis_notification_push_token_v1.pb.h"

#include <algorithm>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = ::PROTOBUF_NAMESPACE_ID::internal;
namespace keyapis {
namespace notification {
namespace v1 {
template <typename>
PROTOBUF_CONSTEXPR PushToken_ValidationError_UserAppIdInvalid::PushToken_ValidationError_UserAppIdInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PushToken_ValidationError_UserAppIdInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushToken_ValidationError_UserAppIdInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushToken_ValidationError_UserAppIdInvalidDefaultTypeInternal() {}
  union {
    PushToken_ValidationError_UserAppIdInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushToken_ValidationError_UserAppIdInvalidDefaultTypeInternal _PushToken_ValidationError_UserAppIdInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushToken_ValidationError::PushToken_ValidationError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PushToken_ValidationErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushToken_ValidationErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushToken_ValidationErrorDefaultTypeInternal() {}
  union {
    PushToken_ValidationError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushToken_ValidationErrorDefaultTypeInternal _PushToken_ValidationError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushToken_SavingError_UserAppIdExists::PushToken_SavingError_UserAppIdExists(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PushToken_SavingError_UserAppIdExistsDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushToken_SavingError_UserAppIdExistsDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushToken_SavingError_UserAppIdExistsDefaultTypeInternal() {}
  union {
    PushToken_SavingError_UserAppIdExists _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushToken_SavingError_UserAppIdExistsDefaultTypeInternal _PushToken_SavingError_UserAppIdExists_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushToken_SavingError_Conflict::PushToken_SavingError_Conflict(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PushToken_SavingError_ConflictDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushToken_SavingError_ConflictDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushToken_SavingError_ConflictDefaultTypeInternal() {}
  union {
    PushToken_SavingError_Conflict _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushToken_SavingError_ConflictDefaultTypeInternal _PushToken_SavingError_Conflict_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushToken_SavingError::PushToken_SavingError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PushToken_SavingErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushToken_SavingErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushToken_SavingErrorDefaultTypeInternal() {}
  union {
    PushToken_SavingError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushToken_SavingErrorDefaultTypeInternal _PushToken_SavingError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushToken::PushToken(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.token_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_.user_app_id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_.app_version_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_.user_id_)*/nullptr
  , /*decltype(_impl_.created_at_)*/nullptr
  , /*decltype(_impl_.changed_at_)*/nullptr
  , /*decltype(_impl_.id_)*/ 0

  , /*decltype(_impl_.type_)*/ 0
} {}
struct PushTokenDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenDefaultTypeInternal() {}
  union {
    PushToken _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenDefaultTypeInternal _PushToken_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushTokenFilter_ValidationError_UserAppIdsInvalid::PushTokenFilter_ValidationError_UserAppIdsInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PushTokenFilter_ValidationError_UserAppIdsInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenFilter_ValidationError_UserAppIdsInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenFilter_ValidationError_UserAppIdsInvalidDefaultTypeInternal() {}
  union {
    PushTokenFilter_ValidationError_UserAppIdsInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenFilter_ValidationError_UserAppIdsInvalidDefaultTypeInternal _PushTokenFilter_ValidationError_UserAppIdsInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushTokenFilter_ValidationError::PushTokenFilter_ValidationError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PushTokenFilter_ValidationErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenFilter_ValidationErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenFilter_ValidationErrorDefaultTypeInternal() {}
  union {
    PushTokenFilter_ValidationError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenFilter_ValidationErrorDefaultTypeInternal _PushTokenFilter_ValidationError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushTokenFilter::PushTokenFilter(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.types_)*/ {}
  , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

  , /*decltype(_impl_.user_app_ids_)*/{}
  , /*decltype(_impl_.user_ids_)*/ {}
  ,/* _impl_._user_ids_cached_byte_size_ = */ { 0 }

  , /*decltype(_impl_.begin_created_at_)*/nullptr
  , /*decltype(_impl_.end_created_at_)*/nullptr
  , /*decltype(_impl_.begin_changed_at_)*/nullptr
  , /*decltype(_impl_.end_changed_at_)*/nullptr} {}
struct PushTokenFilterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenFilterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenFilterDefaultTypeInternal() {}
  union {
    PushTokenFilter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenFilterDefaultTypeInternal _PushTokenFilter_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushTokenPaging_ValidationError_LimitInvalid::PushTokenPaging_ValidationError_LimitInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PushTokenPaging_ValidationError_LimitInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenPaging_ValidationError_LimitInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenPaging_ValidationError_LimitInvalidDefaultTypeInternal() {}
  union {
    PushTokenPaging_ValidationError_LimitInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenPaging_ValidationError_LimitInvalidDefaultTypeInternal _PushTokenPaging_ValidationError_LimitInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushTokenPaging_ValidationError_OffsetInvalid::PushTokenPaging_ValidationError_OffsetInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PushTokenPaging_ValidationError_OffsetInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenPaging_ValidationError_OffsetInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenPaging_ValidationError_OffsetInvalidDefaultTypeInternal() {}
  union {
    PushTokenPaging_ValidationError_OffsetInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenPaging_ValidationError_OffsetInvalidDefaultTypeInternal _PushTokenPaging_ValidationError_OffsetInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushTokenPaging_ValidationError::PushTokenPaging_ValidationError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PushTokenPaging_ValidationErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenPaging_ValidationErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenPaging_ValidationErrorDefaultTypeInternal() {}
  union {
    PushTokenPaging_ValidationError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenPaging_ValidationErrorDefaultTypeInternal _PushTokenPaging_ValidationError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PushTokenPaging::PushTokenPaging(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.order_by_type_)*/ 0

  , /*decltype(_impl_.direction_type_)*/ 0

  , /*decltype(_impl_.limit_)*/ 0

  , /*decltype(_impl_.offset_)*/ 0

  , /*decltype(_impl_._cached_size_)*/{}} {}
struct PushTokenPagingDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTokenPagingDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTokenPagingDefaultTypeInternal() {}
  union {
    PushTokenPaging _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTokenPagingDefaultTypeInternal _PushTokenPaging_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostPushTokenRequest::PostPushTokenRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.data_)*/nullptr} {}
struct PostPushTokenRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostPushTokenRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostPushTokenRequestDefaultTypeInternal() {}
  union {
    PostPushTokenRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostPushTokenRequestDefaultTypeInternal _PostPushTokenRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostPushTokenResponse_Error::PostPushTokenResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostPushTokenResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostPushTokenResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostPushTokenResponse_ErrorDefaultTypeInternal() {}
  union {
    PostPushTokenResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostPushTokenResponse_ErrorDefaultTypeInternal _PostPushTokenResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostPushTokenResponse::PostPushTokenResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostPushTokenResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostPushTokenResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostPushTokenResponseDefaultTypeInternal() {}
  union {
    PostPushTokenResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostPushTokenResponseDefaultTypeInternal _PostPushTokenResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPushTokenListRequest::GetPushTokenListRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.filter_)*/nullptr
  , /*decltype(_impl_.pagination_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPushTokenListRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPushTokenListRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPushTokenListRequestDefaultTypeInternal() {}
  union {
    GetPushTokenListRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPushTokenListRequestDefaultTypeInternal _GetPushTokenListRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPushTokenCountRequest::GetPushTokenCountRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.filter_)*/nullptr} {}
struct GetPushTokenCountRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPushTokenCountRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPushTokenCountRequestDefaultTypeInternal() {}
  union {
    GetPushTokenCountRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPushTokenCountRequestDefaultTypeInternal _GetPushTokenCountRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPushTokenCountResponse_Error::GetPushTokenCountResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPushTokenCountResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPushTokenCountResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPushTokenCountResponse_ErrorDefaultTypeInternal() {}
  union {
    GetPushTokenCountResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPushTokenCountResponse_ErrorDefaultTypeInternal _GetPushTokenCountResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPushTokenCountResponse::GetPushTokenCountResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPushTokenCountResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPushTokenCountResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPushTokenCountResponseDefaultTypeInternal() {}
  union {
    GetPushTokenCountResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPushTokenCountResponseDefaultTypeInternal _GetPushTokenCountResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPushTokenListResponse_Error::GetPushTokenListResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPushTokenListResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPushTokenListResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPushTokenListResponse_ErrorDefaultTypeInternal() {}
  union {
    GetPushTokenListResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPushTokenListResponse_ErrorDefaultTypeInternal _GetPushTokenListResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPushTokenListResponse::GetPushTokenListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPushTokenListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPushTokenListResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPushTokenListResponseDefaultTypeInternal() {}
  union {
    GetPushTokenListResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPushTokenListResponseDefaultTypeInternal _GetPushTokenListResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenRequest::DeletePushTokenRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.id_)*/ 0

  , /*decltype(_impl_._cached_size_)*/{}} {}
struct DeletePushTokenRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenRequestDefaultTypeInternal() {}
  union {
    DeletePushTokenRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenRequestDefaultTypeInternal _DeletePushTokenRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenResponse_Error::DeletePushTokenResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeletePushTokenResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenResponse_ErrorDefaultTypeInternal() {}
  union {
    DeletePushTokenResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenResponse_ErrorDefaultTypeInternal _DeletePushTokenResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenResponse::DeletePushTokenResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeletePushTokenResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenResponseDefaultTypeInternal() {}
  union {
    DeletePushTokenResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenResponseDefaultTypeInternal _DeletePushTokenResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenUserIdRequest::DeletePushTokenUserIdRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.user_id_)*/ 0

  , /*decltype(_impl_._cached_size_)*/{}} {}
struct DeletePushTokenUserIdRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenUserIdRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenUserIdRequestDefaultTypeInternal() {}
  union {
    DeletePushTokenUserIdRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenUserIdRequestDefaultTypeInternal _DeletePushTokenUserIdRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenUserIdResponse_Error::DeletePushTokenUserIdResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeletePushTokenUserIdResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenUserIdResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenUserIdResponse_ErrorDefaultTypeInternal() {}
  union {
    DeletePushTokenUserIdResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenUserIdResponse_ErrorDefaultTypeInternal _DeletePushTokenUserIdResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenUserIdResponse::DeletePushTokenUserIdResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeletePushTokenUserIdResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenUserIdResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenUserIdResponseDefaultTypeInternal() {}
  union {
    DeletePushTokenUserIdResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenUserIdResponseDefaultTypeInternal _DeletePushTokenUserIdResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenUserAppIdRequest::DeletePushTokenUserAppIdRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.user_app_id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_._cached_size_)*/{}} {}
struct DeletePushTokenUserAppIdRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenUserAppIdRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenUserAppIdRequestDefaultTypeInternal() {}
  union {
    DeletePushTokenUserAppIdRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenUserAppIdRequestDefaultTypeInternal _DeletePushTokenUserAppIdRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenUserAppIdResponse_Error::DeletePushTokenUserAppIdResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeletePushTokenUserAppIdResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenUserAppIdResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenUserAppIdResponse_ErrorDefaultTypeInternal() {}
  union {
    DeletePushTokenUserAppIdResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenUserAppIdResponse_ErrorDefaultTypeInternal _DeletePushTokenUserAppIdResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeletePushTokenUserAppIdResponse::DeletePushTokenUserAppIdResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeletePushTokenUserAppIdResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeletePushTokenUserAppIdResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeletePushTokenUserAppIdResponseDefaultTypeInternal() {}
  union {
    DeletePushTokenUserAppIdResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeletePushTokenUserAppIdResponseDefaultTypeInternal _DeletePushTokenUserAppIdResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR ValidationError::ValidationError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.path_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_.message_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ValidationErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ValidationErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ValidationErrorDefaultTypeInternal() {}
  union {
    ValidationError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ValidationErrorDefaultTypeInternal _ValidationError_default_instance_;
}  // namespace v1
}  // namespace notification
}  // namespace keyapis
namespace keyapis {
namespace notification {
namespace v1 {
bool PushToken_Type_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
      return true;
    default:
      return false;
  }
}
static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string>
    PushToken_Type_strings[8] = {};

static const char PushToken_Type_names[] = {
    "MOBILE_APNS_CALL"
    "MOBILE_APNS_TEXT"
    "MOBILE_FCM"
    "MOBILE_HMS"
    "MOBILE_RUSTORE"
    "PWA_APNS"
    "PWA_FCM"
    "TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry PushToken_Type_entries[] =
    {
        {{&PushToken_Type_names[0], 16}, 4},
        {{&PushToken_Type_names[16], 16}, 3},
        {{&PushToken_Type_names[32], 10}, 1},
        {{&PushToken_Type_names[42], 10}, 2},
        {{&PushToken_Type_names[52], 14}, 7},
        {{&PushToken_Type_names[66], 8}, 6},
        {{&PushToken_Type_names[74], 7}, 5},
        {{&PushToken_Type_names[81], 12}, 0},
};

static const int PushToken_Type_entries_by_number[] = {
    7,  // 0 -> TYPE_UNKNOWN
    2,  // 1 -> MOBILE_FCM
    3,  // 2 -> MOBILE_HMS
    1,  // 3 -> MOBILE_APNS_TEXT
    0,  // 4 -> MOBILE_APNS_CALL
    6,  // 5 -> PWA_FCM
    5,  // 6 -> PWA_APNS
    4,  // 7 -> MOBILE_RUSTORE
};

const std::string& PushToken_Type_Name(PushToken_Type value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          PushToken_Type_entries, PushToken_Type_entries_by_number,
          8, PushToken_Type_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      PushToken_Type_entries, PushToken_Type_entries_by_number, 8,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : PushToken_Type_strings[idx].get();
}

bool PushToken_Type_Parse(absl::string_view name, PushToken_Type* value) {
  int int_value;
  bool success = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumValue(
      PushToken_Type_entries, 8, name, &int_value);
  if (success) {
    *value = static_cast<PushToken_Type>(int_value);
  }
  return success;
}
#if (__cplusplus < 201703) && \
  (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

constexpr PushToken_Type PushToken::TYPE_UNKNOWN;
constexpr PushToken_Type PushToken::MOBILE_FCM;
constexpr PushToken_Type PushToken::MOBILE_HMS;
constexpr PushToken_Type PushToken::MOBILE_APNS_TEXT;
constexpr PushToken_Type PushToken::MOBILE_APNS_CALL;
constexpr PushToken_Type PushToken::PWA_FCM;
constexpr PushToken_Type PushToken::PWA_APNS;
constexpr PushToken_Type PushToken::MOBILE_RUSTORE;
constexpr PushToken_Type PushToken::Type_MIN;
constexpr PushToken_Type PushToken::Type_MAX;
constexpr int PushToken::Type_ARRAYSIZE;

#endif  // (__cplusplus < 201703) &&
        // (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
bool PushTokenPaging_OrderByType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}
static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string>
    PushTokenPaging_OrderByType_strings[4] = {};

static const char PushTokenPaging_OrderByType_names[] = {
    "CHANGED_AT"
    "CREATED_AT"
    "ID"
    "ORDER_BY_TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry PushTokenPaging_OrderByType_entries[] =
    {
        {{&PushTokenPaging_OrderByType_names[0], 10}, 3},
        {{&PushTokenPaging_OrderByType_names[10], 10}, 2},
        {{&PushTokenPaging_OrderByType_names[20], 2}, 1},
        {{&PushTokenPaging_OrderByType_names[22], 21}, 0},
};

static const int PushTokenPaging_OrderByType_entries_by_number[] = {
    3,  // 0 -> ORDER_BY_TYPE_UNKNOWN
    2,  // 1 -> ID
    1,  // 2 -> CREATED_AT
    0,  // 3 -> CHANGED_AT
};

const std::string& PushTokenPaging_OrderByType_Name(PushTokenPaging_OrderByType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          PushTokenPaging_OrderByType_entries, PushTokenPaging_OrderByType_entries_by_number,
          4, PushTokenPaging_OrderByType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      PushTokenPaging_OrderByType_entries, PushTokenPaging_OrderByType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : PushTokenPaging_OrderByType_strings[idx].get();
}

bool PushTokenPaging_OrderByType_Parse(absl::string_view name, PushTokenPaging_OrderByType* value) {
  int int_value;
  bool success = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumValue(
      PushTokenPaging_OrderByType_entries, 4, name, &int_value);
  if (success) {
    *value = static_cast<PushTokenPaging_OrderByType>(int_value);
  }
  return success;
}
#if (__cplusplus < 201703) && \
  (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

constexpr PushTokenPaging_OrderByType PushTokenPaging::ORDER_BY_TYPE_UNKNOWN;
constexpr PushTokenPaging_OrderByType PushTokenPaging::ID;
constexpr PushTokenPaging_OrderByType PushTokenPaging::CREATED_AT;
constexpr PushTokenPaging_OrderByType PushTokenPaging::CHANGED_AT;
constexpr PushTokenPaging_OrderByType PushTokenPaging::OrderByType_MIN;
constexpr PushTokenPaging_OrderByType PushTokenPaging::OrderByType_MAX;
constexpr int PushTokenPaging::OrderByType_ARRAYSIZE;

#endif  // (__cplusplus < 201703) &&
        // (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
bool PushTokenPaging_DirectionType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}
static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string>
    PushTokenPaging_DirectionType_strings[3] = {};

static const char PushTokenPaging_DirectionType_names[] = {
    "ASC"
    "DESC"
    "DIRECTION_TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry PushTokenPaging_DirectionType_entries[] =
    {
        {{&PushTokenPaging_DirectionType_names[0], 3}, 2},
        {{&PushTokenPaging_DirectionType_names[3], 4}, 1},
        {{&PushTokenPaging_DirectionType_names[7], 22}, 0},
};

static const int PushTokenPaging_DirectionType_entries_by_number[] = {
    2,  // 0 -> DIRECTION_TYPE_UNKNOWN
    1,  // 1 -> DESC
    0,  // 2 -> ASC
};

const std::string& PushTokenPaging_DirectionType_Name(PushTokenPaging_DirectionType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          PushTokenPaging_DirectionType_entries, PushTokenPaging_DirectionType_entries_by_number,
          3, PushTokenPaging_DirectionType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      PushTokenPaging_DirectionType_entries, PushTokenPaging_DirectionType_entries_by_number, 3,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : PushTokenPaging_DirectionType_strings[idx].get();
}

bool PushTokenPaging_DirectionType_Parse(absl::string_view name, PushTokenPaging_DirectionType* value) {
  int int_value;
  bool success = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumValue(
      PushTokenPaging_DirectionType_entries, 3, name, &int_value);
  if (success) {
    *value = static_cast<PushTokenPaging_DirectionType>(int_value);
  }
  return success;
}
#if (__cplusplus < 201703) && \
  (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

constexpr PushTokenPaging_DirectionType PushTokenPaging::DIRECTION_TYPE_UNKNOWN;
constexpr PushTokenPaging_DirectionType PushTokenPaging::DESC;
constexpr PushTokenPaging_DirectionType PushTokenPaging::ASC;
constexpr PushTokenPaging_DirectionType PushTokenPaging::DirectionType_MIN;
constexpr PushTokenPaging_DirectionType PushTokenPaging::DirectionType_MAX;
constexpr int PushTokenPaging::DirectionType_ARRAYSIZE;

#endif  // (__cplusplus < 201703) &&
        // (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
// ===================================================================

class PushToken_ValidationError_UserAppIdInvalid::_Internal {
 public:
};

PushToken_ValidationError_UserAppIdInvalid::PushToken_ValidationError_UserAppIdInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
}
PushToken_ValidationError_UserAppIdInvalid::PushToken_ValidationError_UserAppIdInvalid(const PushToken_ValidationError_UserAppIdInvalid& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
}

inline void PushToken_ValidationError_UserAppIdInvalid::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      /*decltype(_impl_._cached_size_)*/{}
  };
}

PushToken_ValidationError_UserAppIdInvalid::~PushToken_ValidationError_UserAppIdInvalid() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushToken_ValidationError_UserAppIdInvalid::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void PushToken_ValidationError_UserAppIdInvalid::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushToken_ValidationError_UserAppIdInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<std::string>();
}

const char* PushToken_ValidationError_UserAppIdInvalid::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushToken_ValidationError_UserAppIdInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
  return target;
}

::size_t PushToken_ValidationError_UserAppIdInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushToken_ValidationError_UserAppIdInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushToken_ValidationError_UserAppIdInvalid*>(
      &from));
}

void PushToken_ValidationError_UserAppIdInvalid::MergeFrom(const PushToken_ValidationError_UserAppIdInvalid& from) {
  PushToken_ValidationError_UserAppIdInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushToken_ValidationError_UserAppIdInvalid::CopyFrom(const PushToken_ValidationError_UserAppIdInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushToken_ValidationError_UserAppIdInvalid::IsInitialized() const {
  return true;
}

void PushToken_ValidationError_UserAppIdInvalid::InternalSwap(PushToken_ValidationError_UserAppIdInvalid* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
}

std::string PushToken_ValidationError_UserAppIdInvalid::GetTypeName() const {
  return "keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid";
}

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

class PushToken_ValidationError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::PushToken_ValidationError, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid& user_app_id(const PushToken_ValidationError* msg);
};

const ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid&
PushToken_ValidationError::_Internal::user_app_id(const PushToken_ValidationError* msg) {
  return *msg->_impl_.reason_.user_app_id_;
}
void PushToken_ValidationError::set_allocated_user_app_id(::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid* user_app_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (user_app_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(user_app_id);
    if (message_arena != submessage_arena) {
      user_app_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_app_id, submessage_arena);
    }
    set_has_user_app_id();
    _impl_.reason_.user_app_id_ = user_app_id;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.ValidationError.user_app_id)
}
PushToken_ValidationError::PushToken_ValidationError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushToken.ValidationError)
}
PushToken_ValidationError::PushToken_ValidationError(const PushToken_ValidationError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PushToken_ValidationError* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kUserAppId: {
      _this->_internal_mutable_user_app_id()->::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid::MergeFrom(
          from._internal_user_app_id());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushToken.ValidationError)
}

inline void PushToken_ValidationError::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

PushToken_ValidationError::~PushToken_ValidationError() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushToken.ValidationError)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushToken_ValidationError::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void PushToken_ValidationError::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushToken_ValidationError::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.PushToken.ValidationError)
  switch (reason_case()) {
    case kUserAppId: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.user_app_id_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void PushToken_ValidationError::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushToken.ValidationError)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* PushToken_ValidationError::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid user_app_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_user_app_id(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushToken_ValidationError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushToken.ValidationError)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid user_app_id = 1;
  if (reason_case() == kUserAppId) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::user_app_id(this),
        _Internal::user_app_id(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushToken.ValidationError)
  return target;
}

::size_t PushToken_ValidationError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushToken.ValidationError)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid user_app_id = 1;
    case kUserAppId: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.user_app_id_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushToken_ValidationError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushToken_ValidationError*>(
      &from));
}

void PushToken_ValidationError::MergeFrom(const PushToken_ValidationError& from) {
  PushToken_ValidationError* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushToken.ValidationError)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kUserAppId: {
      _this->_internal_mutable_user_app_id()->::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid::MergeFrom(
          from._internal_user_app_id());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushToken_ValidationError::CopyFrom(const PushToken_ValidationError& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushToken.ValidationError)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushToken_ValidationError::IsInitialized() const {
  return true;
}

void PushToken_ValidationError::InternalSwap(PushToken_ValidationError* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string PushToken_ValidationError::GetTypeName() const {
  return "keyapis.notification.v1.PushToken.ValidationError";
}

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

class PushToken_SavingError_UserAppIdExists::_Internal {
 public:
};

PushToken_SavingError_UserAppIdExists::PushToken_SavingError_UserAppIdExists(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
}
PushToken_SavingError_UserAppIdExists::PushToken_SavingError_UserAppIdExists(const PushToken_SavingError_UserAppIdExists& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
}

inline void PushToken_SavingError_UserAppIdExists::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      /*decltype(_impl_._cached_size_)*/{}
  };
}

PushToken_SavingError_UserAppIdExists::~PushToken_SavingError_UserAppIdExists() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushToken_SavingError_UserAppIdExists::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void PushToken_SavingError_UserAppIdExists::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushToken_SavingError_UserAppIdExists::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<std::string>();
}

const char* PushToken_SavingError_UserAppIdExists::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushToken_SavingError_UserAppIdExists::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
  return target;
}

::size_t PushToken_SavingError_UserAppIdExists::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushToken_SavingError_UserAppIdExists::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushToken_SavingError_UserAppIdExists*>(
      &from));
}

void PushToken_SavingError_UserAppIdExists::MergeFrom(const PushToken_SavingError_UserAppIdExists& from) {
  PushToken_SavingError_UserAppIdExists* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushToken_SavingError_UserAppIdExists::CopyFrom(const PushToken_SavingError_UserAppIdExists& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushToken.SavingError.UserAppIdExists)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushToken_SavingError_UserAppIdExists::IsInitialized() const {
  return true;
}

void PushToken_SavingError_UserAppIdExists::InternalSwap(PushToken_SavingError_UserAppIdExists* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
}

std::string PushToken_SavingError_UserAppIdExists::GetTypeName() const {
  return "keyapis.notification.v1.PushToken.SavingError.UserAppIdExists";
}

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

class PushToken_SavingError_Conflict::_Internal {
 public:
};

PushToken_SavingError_Conflict::PushToken_SavingError_Conflict(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushToken.SavingError.Conflict)
}
PushToken_SavingError_Conflict::PushToken_SavingError_Conflict(const PushToken_SavingError_Conflict& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushToken.SavingError.Conflict)
}

inline void PushToken_SavingError_Conflict::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      /*decltype(_impl_._cached_size_)*/{}
  };
}

PushToken_SavingError_Conflict::~PushToken_SavingError_Conflict() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushToken.SavingError.Conflict)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushToken_SavingError_Conflict::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void PushToken_SavingError_Conflict::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushToken_SavingError_Conflict::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushToken.SavingError.Conflict)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<std::string>();
}

const char* PushToken_SavingError_Conflict::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushToken_SavingError_Conflict::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushToken.SavingError.Conflict)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushToken.SavingError.Conflict)
  return target;
}

::size_t PushToken_SavingError_Conflict::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushToken.SavingError.Conflict)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushToken_SavingError_Conflict::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushToken_SavingError_Conflict*>(
      &from));
}

void PushToken_SavingError_Conflict::MergeFrom(const PushToken_SavingError_Conflict& from) {
  PushToken_SavingError_Conflict* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushToken.SavingError.Conflict)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushToken_SavingError_Conflict::CopyFrom(const PushToken_SavingError_Conflict& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushToken.SavingError.Conflict)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushToken_SavingError_Conflict::IsInitialized() const {
  return true;
}

void PushToken_SavingError_Conflict::InternalSwap(PushToken_SavingError_Conflict* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
}

std::string PushToken_SavingError_Conflict::GetTypeName() const {
  return "keyapis.notification.v1.PushToken.SavingError.Conflict";
}

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

class PushToken_SavingError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::PushToken_SavingError, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists& user_app_id_exists(const PushToken_SavingError* msg);
  static const ::keyapis::notification::v1::PushToken_SavingError_Conflict& conflict(const PushToken_SavingError* msg);
};

const ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists&
PushToken_SavingError::_Internal::user_app_id_exists(const PushToken_SavingError* msg) {
  return *msg->_impl_.reason_.user_app_id_exists_;
}
const ::keyapis::notification::v1::PushToken_SavingError_Conflict&
PushToken_SavingError::_Internal::conflict(const PushToken_SavingError* msg) {
  return *msg->_impl_.reason_.conflict_;
}
void PushToken_SavingError::set_allocated_user_app_id_exists(::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists* user_app_id_exists) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (user_app_id_exists) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(user_app_id_exists);
    if (message_arena != submessage_arena) {
      user_app_id_exists = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_app_id_exists, submessage_arena);
    }
    set_has_user_app_id_exists();
    _impl_.reason_.user_app_id_exists_ = user_app_id_exists;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.SavingError.user_app_id_exists)
}
void PushToken_SavingError::set_allocated_conflict(::keyapis::notification::v1::PushToken_SavingError_Conflict* conflict) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (conflict) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(conflict);
    if (message_arena != submessage_arena) {
      conflict = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, conflict, submessage_arena);
    }
    set_has_conflict();
    _impl_.reason_.conflict_ = conflict;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushToken.SavingError.conflict)
}
PushToken_SavingError::PushToken_SavingError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushToken.SavingError)
}
PushToken_SavingError::PushToken_SavingError(const PushToken_SavingError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PushToken_SavingError* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kUserAppIdExists: {
      _this->_internal_mutable_user_app_id_exists()->::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists::MergeFrom(
          from._internal_user_app_id_exists());
      break;
    }
    case kConflict: {
      _this->_internal_mutable_conflict()->::keyapis::notification::v1::PushToken_SavingError_Conflict::MergeFrom(
          from._internal_conflict());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushToken.SavingError)
}

inline void PushToken_SavingError::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

PushToken_SavingError::~PushToken_SavingError() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushToken.SavingError)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushToken_SavingError::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void PushToken_SavingError::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushToken_SavingError::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.PushToken.SavingError)
  switch (reason_case()) {
    case kUserAppIdExists: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.user_app_id_exists_;
      }
      break;
    }
    case kConflict: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.conflict_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void PushToken_SavingError::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushToken.SavingError)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* PushToken_SavingError::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushToken.SavingError.UserAppIdExists user_app_id_exists = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_user_app_id_exists(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PushToken.SavingError.Conflict conflict = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_conflict(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushToken_SavingError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushToken.SavingError)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kUserAppIdExists: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::user_app_id_exists(this),
          _Internal::user_app_id_exists(this).GetCachedSize(), target, stream);
      break;
    }
    case kConflict: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::conflict(this),
          _Internal::conflict(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushToken.SavingError)
  return target;
}

::size_t PushToken_SavingError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushToken.SavingError)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.PushToken.SavingError.UserAppIdExists user_app_id_exists = 1;
    case kUserAppIdExists: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.user_app_id_exists_);
      break;
    }
    // .keyapis.notification.v1.PushToken.SavingError.Conflict conflict = 2;
    case kConflict: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.conflict_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushToken_SavingError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushToken_SavingError*>(
      &from));
}

void PushToken_SavingError::MergeFrom(const PushToken_SavingError& from) {
  PushToken_SavingError* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushToken.SavingError)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kUserAppIdExists: {
      _this->_internal_mutable_user_app_id_exists()->::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists::MergeFrom(
          from._internal_user_app_id_exists());
      break;
    }
    case kConflict: {
      _this->_internal_mutable_conflict()->::keyapis::notification::v1::PushToken_SavingError_Conflict::MergeFrom(
          from._internal_conflict());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushToken_SavingError::CopyFrom(const PushToken_SavingError& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushToken.SavingError)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushToken_SavingError::IsInitialized() const {
  return true;
}

void PushToken_SavingError::InternalSwap(PushToken_SavingError* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string PushToken_SavingError::GetTypeName() const {
  return "keyapis.notification.v1.PushToken.SavingError";
}

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

class PushToken::_Internal {
 public:
  using HasBits = decltype(std::declval<PushToken>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(PushToken, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& user_id(const PushToken* msg);
  static void set_has_user_id(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& created_at(const PushToken* msg);
  static void set_has_created_at(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& changed_at(const PushToken* msg);
  static void set_has_changed_at(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::Int32Value&
PushToken::_Internal::user_id(const PushToken* msg) {
  return *msg->_impl_.user_id_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PushToken::_Internal::created_at(const PushToken* msg) {
  return *msg->_impl_.created_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PushToken::_Internal::changed_at(const PushToken* msg) {
  return *msg->_impl_.changed_at_;
}
void PushToken::clear_user_id() {
  if (_impl_.user_id_ != nullptr) _impl_.user_id_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void PushToken::clear_created_at() {
  if (_impl_.created_at_ != nullptr) _impl_.created_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
void PushToken::clear_changed_at() {
  if (_impl_.changed_at_ != nullptr) _impl_.changed_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
PushToken::PushToken(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushToken)
}
PushToken::PushToken(const PushToken& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PushToken* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.token_) {}

    , decltype(_impl_.user_app_id_) {}

    , decltype(_impl_.app_version_) {}

    , decltype(_impl_.user_id_){nullptr}
    , decltype(_impl_.created_at_){nullptr}
    , decltype(_impl_.changed_at_){nullptr}
    , decltype(_impl_.id_) {}

    , decltype(_impl_.type_) {}
  };

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.token_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.token_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_token().empty()) {
    _this->_impl_.token_.Set(from._internal_token(), _this->GetArenaForAllocation());
  }
  _impl_.user_app_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.user_app_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_user_app_id().empty()) {
    _this->_impl_.user_app_id_.Set(from._internal_user_app_id(), _this->GetArenaForAllocation());
  }
  _impl_.app_version_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.app_version_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_app_version().empty()) {
    _this->_impl_.app_version_.Set(from._internal_app_version(), _this->GetArenaForAllocation());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.user_id_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.user_id_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000002u) != 0) {
    _this->_impl_.created_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.created_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000004u) != 0) {
    _this->_impl_.changed_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.changed_at_);
  }
  ::memcpy(&_impl_.id_, &from._impl_.id_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.type_) -
    reinterpret_cast<char*>(&_impl_.id_)) + sizeof(_impl_.type_));
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushToken)
}

inline void PushToken::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.token_) {}

    , decltype(_impl_.user_app_id_) {}

    , decltype(_impl_.app_version_) {}

    , decltype(_impl_.user_id_){nullptr}
    , decltype(_impl_.created_at_){nullptr}
    , decltype(_impl_.changed_at_){nullptr}
    , decltype(_impl_.id_) { 0 }

    , decltype(_impl_.type_) { 0 }

  };
  _impl_.token_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.token_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.user_app_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.user_app_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.app_version_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.app_version_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

PushToken::~PushToken() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushToken)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushToken::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.token_.Destroy();
  _impl_.user_app_id_.Destroy();
  _impl_.app_version_.Destroy();
  if (this != internal_default_instance()) delete _impl_.user_id_;
  if (this != internal_default_instance()) delete _impl_.created_at_;
  if (this != internal_default_instance()) delete _impl_.changed_at_;
}

void PushToken::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushToken::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushToken)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.token_.ClearToEmpty();
  _impl_.user_app_id_.ClearToEmpty();
  _impl_.app_version_.ClearToEmpty();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.user_id_ != nullptr);
      _impl_.user_id_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.created_at_ != nullptr);
      _impl_.created_at_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      ABSL_DCHECK(_impl_.changed_at_ != nullptr);
      _impl_.changed_at_->Clear();
    }
  }
  ::memset(&_impl_.id_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.type_) -
      reinterpret_cast<char*>(&_impl_.id_)) + sizeof(_impl_.type_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* PushToken::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PushToken.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::notification::v1::PushToken_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string token = 3 [(.google.api.field_behavior) = REQUIRED];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_token();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // string user_app_id = 4 [(.google.api.field_behavior) = REQUIRED];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_user_app_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value user_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_user_id(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp created_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_created_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp changed_at = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_changed_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // string app_version = 8 [(.google.api.field_behavior) = REQUIRED];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_app_version();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushToken::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushToken)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 id = 1;
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        1, this->_internal_id(), target);
  }

  // .keyapis.notification.v1.PushToken.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this->_internal_type(), target);
  }

  // string token = 3 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_token().empty()) {
    const std::string& _s = this->_internal_token();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.notification.v1.PushToken.token");
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // string user_app_id = 4 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_user_app_id().empty()) {
    const std::string& _s = this->_internal_user_app_id();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.notification.v1.PushToken.user_app_id");
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  cached_has_bits = _impl_._has_bits_[0];
  // .google.protobuf.Int32Value user_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, _Internal::user_id(this),
        _Internal::user_id(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Timestamp created_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
  if (cached_has_bits & 0x00000002u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(6, _Internal::created_at(this),
        _Internal::created_at(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Timestamp changed_at = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
  if (cached_has_bits & 0x00000004u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(7, _Internal::changed_at(this),
        _Internal::changed_at(this).GetCachedSize(), target, stream);
  }

  // string app_version = 8 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_app_version().empty()) {
    const std::string& _s = this->_internal_app_version();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.notification.v1.PushToken.app_version");
    target = stream->WriteStringMaybeAliased(8, _s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushToken)
  return target;
}

::size_t PushToken::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushToken)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string token = 3 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_token().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_token());
  }

  // string user_app_id = 4 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_user_app_id().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_user_app_id());
  }

  // string app_version = 8 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_app_version().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_app_version());
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    // .google.protobuf.Int32Value user_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.user_id_);
    }

    // .google.protobuf.Timestamp created_at = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.created_at_);
    }

    // .google.protobuf.Timestamp changed_at = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.changed_at_);
    }

  }
  // int32 id = 1;
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
        this->_internal_id());
  }

  // .keyapis.notification.v1.PushToken.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_type());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushToken::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushToken*>(
      &from));
}

void PushToken::MergeFrom(const PushToken& from) {
  PushToken* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushToken)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_token().empty()) {
    _this->_internal_set_token(from._internal_token());
  }
  if (!from._internal_user_app_id().empty()) {
    _this->_internal_set_user_app_id(from._internal_user_app_id());
  }
  if (!from._internal_app_version().empty()) {
    _this->_internal_set_app_version(from._internal_app_version());
  }
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_user_id()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_user_id());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_created_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_created_at());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_changed_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_changed_at());
    }
  }
  if (from._internal_id() != 0) {
    _this->_internal_set_id(from._internal_id());
  }
  if (from._internal_type() != 0) {
    _this->_internal_set_type(from._internal_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushToken::CopyFrom(const PushToken& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushToken)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushToken::IsInitialized() const {
  return true;
}

void PushToken::InternalSwap(PushToken* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.token_, lhs_arena,
                                       &other->_impl_.token_, rhs_arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.user_app_id_, lhs_arena,
                                       &other->_impl_.user_app_id_, rhs_arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.app_version_, lhs_arena,
                                       &other->_impl_.app_version_, rhs_arena);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PushToken, _impl_.type_)
      + sizeof(PushToken::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(PushToken, _impl_.user_id_)>(
          reinterpret_cast<char*>(&_impl_.user_id_),
          reinterpret_cast<char*>(&other->_impl_.user_id_));
}

std::string PushToken::GetTypeName() const {
  return "keyapis.notification.v1.PushToken";
}

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

class PushTokenFilter_ValidationError_UserAppIdsInvalid::_Internal {
 public:
};

PushTokenFilter_ValidationError_UserAppIdsInvalid::PushTokenFilter_ValidationError_UserAppIdsInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
}
PushTokenFilter_ValidationError_UserAppIdsInvalid::PushTokenFilter_ValidationError_UserAppIdsInvalid(const PushTokenFilter_ValidationError_UserAppIdsInvalid& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
}

inline void PushTokenFilter_ValidationError_UserAppIdsInvalid::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      /*decltype(_impl_._cached_size_)*/{}
  };
}

PushTokenFilter_ValidationError_UserAppIdsInvalid::~PushTokenFilter_ValidationError_UserAppIdsInvalid() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTokenFilter_ValidationError_UserAppIdsInvalid::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void PushTokenFilter_ValidationError_UserAppIdsInvalid::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTokenFilter_ValidationError_UserAppIdsInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<std::string>();
}

const char* PushTokenFilter_ValidationError_UserAppIdsInvalid::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushTokenFilter_ValidationError_UserAppIdsInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
  return target;
}

::size_t PushTokenFilter_ValidationError_UserAppIdsInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushTokenFilter_ValidationError_UserAppIdsInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushTokenFilter_ValidationError_UserAppIdsInvalid*>(
      &from));
}

void PushTokenFilter_ValidationError_UserAppIdsInvalid::MergeFrom(const PushTokenFilter_ValidationError_UserAppIdsInvalid& from) {
  PushTokenFilter_ValidationError_UserAppIdsInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushTokenFilter_ValidationError_UserAppIdsInvalid::CopyFrom(const PushTokenFilter_ValidationError_UserAppIdsInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTokenFilter_ValidationError_UserAppIdsInvalid::IsInitialized() const {
  return true;
}

void PushTokenFilter_ValidationError_UserAppIdsInvalid::InternalSwap(PushTokenFilter_ValidationError_UserAppIdsInvalid* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
}

std::string PushTokenFilter_ValidationError_UserAppIdsInvalid::GetTypeName() const {
  return "keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid";
}

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

class PushTokenFilter_ValidationError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::PushTokenFilter_ValidationError, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid& user_app_ids(const PushTokenFilter_ValidationError* msg);
};

const ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid&
PushTokenFilter_ValidationError::_Internal::user_app_ids(const PushTokenFilter_ValidationError* msg) {
  return *msg->_impl_.reason_.user_app_ids_;
}
void PushTokenFilter_ValidationError::set_allocated_user_app_ids(::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid* user_app_ids) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (user_app_ids) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(user_app_ids);
    if (message_arena != submessage_arena) {
      user_app_ids = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_app_ids, submessage_arena);
    }
    set_has_user_app_ids();
    _impl_.reason_.user_app_ids_ = user_app_ids;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushTokenFilter.ValidationError.user_app_ids)
}
PushTokenFilter_ValidationError::PushTokenFilter_ValidationError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushTokenFilter.ValidationError)
}
PushTokenFilter_ValidationError::PushTokenFilter_ValidationError(const PushTokenFilter_ValidationError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PushTokenFilter_ValidationError* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kUserAppIds: {
      _this->_internal_mutable_user_app_ids()->::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid::MergeFrom(
          from._internal_user_app_ids());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushTokenFilter.ValidationError)
}

inline void PushTokenFilter_ValidationError::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

PushTokenFilter_ValidationError::~PushTokenFilter_ValidationError() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushTokenFilter.ValidationError)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTokenFilter_ValidationError::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void PushTokenFilter_ValidationError::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTokenFilter_ValidationError::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.PushTokenFilter.ValidationError)
  switch (reason_case()) {
    case kUserAppIds: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.user_app_ids_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void PushTokenFilter_ValidationError::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushTokenFilter.ValidationError)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* PushTokenFilter_ValidationError::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid user_app_ids = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_user_app_ids(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushTokenFilter_ValidationError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushTokenFilter.ValidationError)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid user_app_ids = 1;
  if (reason_case() == kUserAppIds) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::user_app_ids(this),
        _Internal::user_app_ids(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushTokenFilter.ValidationError)
  return target;
}

::size_t PushTokenFilter_ValidationError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushTokenFilter.ValidationError)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid user_app_ids = 1;
    case kUserAppIds: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.user_app_ids_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushTokenFilter_ValidationError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushTokenFilter_ValidationError*>(
      &from));
}

void PushTokenFilter_ValidationError::MergeFrom(const PushTokenFilter_ValidationError& from) {
  PushTokenFilter_ValidationError* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushTokenFilter.ValidationError)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kUserAppIds: {
      _this->_internal_mutable_user_app_ids()->::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid::MergeFrom(
          from._internal_user_app_ids());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushTokenFilter_ValidationError::CopyFrom(const PushTokenFilter_ValidationError& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushTokenFilter.ValidationError)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTokenFilter_ValidationError::IsInitialized() const {
  return true;
}

void PushTokenFilter_ValidationError::InternalSwap(PushTokenFilter_ValidationError* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string PushTokenFilter_ValidationError::GetTypeName() const {
  return "keyapis.notification.v1.PushTokenFilter.ValidationError";
}

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

class PushTokenFilter::_Internal {
 public:
  using HasBits = decltype(std::declval<PushTokenFilter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(PushTokenFilter, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& begin_created_at(const PushTokenFilter* msg);
  static void set_has_begin_created_at(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& end_created_at(const PushTokenFilter* msg);
  static void set_has_end_created_at(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& begin_changed_at(const PushTokenFilter* msg);
  static void set_has_begin_changed_at(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& end_changed_at(const PushTokenFilter* msg);
  static void set_has_end_changed_at(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PushTokenFilter::_Internal::begin_created_at(const PushTokenFilter* msg) {
  return *msg->_impl_.begin_created_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PushTokenFilter::_Internal::end_created_at(const PushTokenFilter* msg) {
  return *msg->_impl_.end_created_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PushTokenFilter::_Internal::begin_changed_at(const PushTokenFilter* msg) {
  return *msg->_impl_.begin_changed_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
PushTokenFilter::_Internal::end_changed_at(const PushTokenFilter* msg) {
  return *msg->_impl_.end_changed_at_;
}
void PushTokenFilter::clear_begin_created_at() {
  if (_impl_.begin_created_at_ != nullptr) _impl_.begin_created_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void PushTokenFilter::clear_end_created_at() {
  if (_impl_.end_created_at_ != nullptr) _impl_.end_created_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
void PushTokenFilter::clear_begin_changed_at() {
  if (_impl_.begin_changed_at_ != nullptr) _impl_.begin_changed_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
void PushTokenFilter::clear_end_changed_at() {
  if (_impl_.end_changed_at_ != nullptr) _impl_.end_changed_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000008u;
}
PushTokenFilter::PushTokenFilter(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushTokenFilter)
}
PushTokenFilter::PushTokenFilter(const PushTokenFilter& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PushTokenFilter* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.types_) { from._internal_types() }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.user_app_ids_){from._impl_.user_app_ids_}
    , decltype(_impl_.user_ids_) { from._impl_.user_ids_ }
    ,/* _impl_._user_ids_cached_byte_size_ = */ { 0 }

    , decltype(_impl_.begin_created_at_){nullptr}
    , decltype(_impl_.end_created_at_){nullptr}
    , decltype(_impl_.begin_changed_at_){nullptr}
    , decltype(_impl_.end_changed_at_){nullptr}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.begin_created_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.begin_created_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000002u) != 0) {
    _this->_impl_.end_created_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.end_created_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000004u) != 0) {
    _this->_impl_.begin_changed_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.begin_changed_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000008u) != 0) {
    _this->_impl_.end_changed_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.end_changed_at_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushTokenFilter)
}

inline void PushTokenFilter::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.types_) { arena }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.user_app_ids_){arena}
    , decltype(_impl_.user_ids_) { arena }
    ,/* _impl_._user_ids_cached_byte_size_ = */ { 0 }

    , decltype(_impl_.begin_created_at_){nullptr}
    , decltype(_impl_.end_created_at_){nullptr}
    , decltype(_impl_.begin_changed_at_){nullptr}
    , decltype(_impl_.end_changed_at_){nullptr}
  };
}

PushTokenFilter::~PushTokenFilter() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushTokenFilter)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTokenFilter::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_types()->~RepeatedField();
  _internal_mutable_user_app_ids()->~RepeatedPtrField();
  _impl_.user_ids_.~RepeatedField();
  if (this != internal_default_instance()) delete _impl_.begin_created_at_;
  if (this != internal_default_instance()) delete _impl_.end_created_at_;
  if (this != internal_default_instance()) delete _impl_.begin_changed_at_;
  if (this != internal_default_instance()) delete _impl_.end_changed_at_;
}

void PushTokenFilter::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTokenFilter::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushTokenFilter)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_mutable_types()->Clear();
  _internal_mutable_user_app_ids()->Clear();
  _internal_mutable_user_ids()->Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.begin_created_at_ != nullptr);
      _impl_.begin_created_at_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.end_created_at_ != nullptr);
      _impl_.end_created_at_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      ABSL_DCHECK(_impl_.begin_changed_at_ != nullptr);
      _impl_.begin_changed_at_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      ABSL_DCHECK(_impl_.end_changed_at_ != nullptr);
      _impl_.end_changed_at_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* PushTokenFilter::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .keyapis.notification.v1.PushToken.Type types = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 8) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_types(static_cast<::keyapis::notification::v1::PushToken_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string user_app_ids = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_user_app_ids();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated int32 user_ids = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_user_ids(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 24) {
          _internal_add_user_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp begin_created_at = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_begin_created_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp end_created_at = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_end_created_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp begin_changed_at = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_begin_changed_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp end_changed_at = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_end_changed_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushTokenFilter::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushTokenFilter)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .keyapis.notification.v1.PushToken.Type types = 1;
  {
    int byte_size = _impl_._types_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(1, _internal_types(),
                                       byte_size, target);
    }
  }

  // repeated string user_app_ids = 2;
  for (int i = 0, n = this->_internal_user_app_ids_size(); i < n; ++i) {
    const auto& s = this->_internal_user_app_ids(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.notification.v1.PushTokenFilter.user_app_ids");
    target = stream->WriteString(2, s, target);
  }

  // repeated int32 user_ids = 3;
  {
    int byte_size = _impl_._user_ids_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(3, _internal_user_ids(),
                                                 byte_size, target);
    }
  }

  cached_has_bits = _impl_._has_bits_[0];
  // .google.protobuf.Timestamp begin_created_at = 4;
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, _Internal::begin_created_at(this),
        _Internal::begin_created_at(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Timestamp end_created_at = 5;
  if (cached_has_bits & 0x00000002u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, _Internal::end_created_at(this),
        _Internal::end_created_at(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Timestamp begin_changed_at = 6;
  if (cached_has_bits & 0x00000004u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(6, _Internal::begin_changed_at(this),
        _Internal::begin_changed_at(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Timestamp end_changed_at = 7;
  if (cached_has_bits & 0x00000008u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(7, _Internal::end_changed_at(this),
        _Internal::end_changed_at(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushTokenFilter)
  return target;
}

::size_t PushTokenFilter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushTokenFilter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .keyapis.notification.v1.PushToken.Type types = 1;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_types_size());

    for (std::size_t i = 0; i < count; ++i) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
          this->_internal_types(static_cast<int>(i)));
    }
    total_size += data_size;
    if (data_size > 0) {
      total_size += 1;
      total_size += ::_pbi::WireFormatLite::Int32Size(
          static_cast<int32_t>(data_size));
    }
    _impl_._types_cached_byte_size_.Set(::_pbi::ToCachedSize(data_size));
  }

  // repeated string user_app_ids = 2;
  total_size += 1 * ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_internal_user_app_ids().size());
  for (int i = 0, n = _internal_user_app_ids().size(); i < n; ++i) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        _internal_user_app_ids().Get(i));
  }

  // repeated int32 user_ids = 3;
  {
    std::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
        this->_internal_user_ids())
    ;
    _impl_._user_ids_cached_byte_size_.Set(::_pbi::ToCachedSize(data_size));
    std::size_t tag_size = data_size == 0
        ? 0
        : 1 + ::_pbi::WireFormatLite::Int32Size(
                            static_cast<int32_t>(data_size))
    ;
    total_size += tag_size + data_size;
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    // .google.protobuf.Timestamp begin_created_at = 4;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.begin_created_at_);
    }

    // .google.protobuf.Timestamp end_created_at = 5;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.end_created_at_);
    }

    // .google.protobuf.Timestamp begin_changed_at = 6;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.begin_changed_at_);
    }

    // .google.protobuf.Timestamp end_changed_at = 7;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.end_changed_at_);
    }

  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushTokenFilter::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushTokenFilter*>(
      &from));
}

void PushTokenFilter::MergeFrom(const PushTokenFilter& from) {
  PushTokenFilter* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushTokenFilter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_types()->MergeFrom(from._internal_types());
  _this->_internal_mutable_user_app_ids()->MergeFrom(from._internal_user_app_ids());
  _this->_impl_.user_ids_.MergeFrom(from._impl_.user_ids_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_begin_created_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_begin_created_at());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_end_created_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_end_created_at());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_begin_changed_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_begin_changed_at());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_internal_mutable_end_changed_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_end_changed_at());
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushTokenFilter::CopyFrom(const PushTokenFilter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushTokenFilter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTokenFilter::IsInitialized() const {
  return true;
}

void PushTokenFilter::InternalSwap(PushTokenFilter* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _internal_mutable_types()->InternalSwap(
      other->_internal_mutable_types());
  _internal_mutable_user_app_ids()->InternalSwap(
      other->_internal_mutable_user_app_ids());
  _impl_.user_ids_.InternalSwap(&other->_impl_.user_ids_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PushTokenFilter, _impl_.end_changed_at_)
      + sizeof(PushTokenFilter::_impl_.end_changed_at_)
      - PROTOBUF_FIELD_OFFSET(PushTokenFilter, _impl_.begin_created_at_)>(
          reinterpret_cast<char*>(&_impl_.begin_created_at_),
          reinterpret_cast<char*>(&other->_impl_.begin_created_at_));
}

std::string PushTokenFilter::GetTypeName() const {
  return "keyapis.notification.v1.PushTokenFilter";
}

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

class PushTokenPaging_ValidationError_LimitInvalid::_Internal {
 public:
};

PushTokenPaging_ValidationError_LimitInvalid::PushTokenPaging_ValidationError_LimitInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
}
PushTokenPaging_ValidationError_LimitInvalid::PushTokenPaging_ValidationError_LimitInvalid(const PushTokenPaging_ValidationError_LimitInvalid& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
}

inline void PushTokenPaging_ValidationError_LimitInvalid::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      /*decltype(_impl_._cached_size_)*/{}
  };
}

PushTokenPaging_ValidationError_LimitInvalid::~PushTokenPaging_ValidationError_LimitInvalid() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTokenPaging_ValidationError_LimitInvalid::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void PushTokenPaging_ValidationError_LimitInvalid::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTokenPaging_ValidationError_LimitInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<std::string>();
}

const char* PushTokenPaging_ValidationError_LimitInvalid::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushTokenPaging_ValidationError_LimitInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
  return target;
}

::size_t PushTokenPaging_ValidationError_LimitInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushTokenPaging_ValidationError_LimitInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushTokenPaging_ValidationError_LimitInvalid*>(
      &from));
}

void PushTokenPaging_ValidationError_LimitInvalid::MergeFrom(const PushTokenPaging_ValidationError_LimitInvalid& from) {
  PushTokenPaging_ValidationError_LimitInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushTokenPaging_ValidationError_LimitInvalid::CopyFrom(const PushTokenPaging_ValidationError_LimitInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTokenPaging_ValidationError_LimitInvalid::IsInitialized() const {
  return true;
}

void PushTokenPaging_ValidationError_LimitInvalid::InternalSwap(PushTokenPaging_ValidationError_LimitInvalid* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
}

std::string PushTokenPaging_ValidationError_LimitInvalid::GetTypeName() const {
  return "keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid";
}

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

class PushTokenPaging_ValidationError_OffsetInvalid::_Internal {
 public:
};

PushTokenPaging_ValidationError_OffsetInvalid::PushTokenPaging_ValidationError_OffsetInvalid(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
}
PushTokenPaging_ValidationError_OffsetInvalid::PushTokenPaging_ValidationError_OffsetInvalid(const PushTokenPaging_ValidationError_OffsetInvalid& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
}

inline void PushTokenPaging_ValidationError_OffsetInvalid::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      /*decltype(_impl_._cached_size_)*/{}
  };
}

PushTokenPaging_ValidationError_OffsetInvalid::~PushTokenPaging_ValidationError_OffsetInvalid() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTokenPaging_ValidationError_OffsetInvalid::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void PushTokenPaging_ValidationError_OffsetInvalid::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTokenPaging_ValidationError_OffsetInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<std::string>();
}

const char* PushTokenPaging_ValidationError_OffsetInvalid::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushTokenPaging_ValidationError_OffsetInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
  return target;
}

::size_t PushTokenPaging_ValidationError_OffsetInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushTokenPaging_ValidationError_OffsetInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushTokenPaging_ValidationError_OffsetInvalid*>(
      &from));
}

void PushTokenPaging_ValidationError_OffsetInvalid::MergeFrom(const PushTokenPaging_ValidationError_OffsetInvalid& from) {
  PushTokenPaging_ValidationError_OffsetInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushTokenPaging_ValidationError_OffsetInvalid::CopyFrom(const PushTokenPaging_ValidationError_OffsetInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTokenPaging_ValidationError_OffsetInvalid::IsInitialized() const {
  return true;
}

void PushTokenPaging_ValidationError_OffsetInvalid::InternalSwap(PushTokenPaging_ValidationError_OffsetInvalid* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
}

std::string PushTokenPaging_ValidationError_OffsetInvalid::GetTypeName() const {
  return "keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid";
}

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

class PushTokenPaging_ValidationError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::PushTokenPaging_ValidationError, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid& limit(const PushTokenPaging_ValidationError* msg);
  static const ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid& offset(const PushTokenPaging_ValidationError* msg);
};

const ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid&
PushTokenPaging_ValidationError::_Internal::limit(const PushTokenPaging_ValidationError* msg) {
  return *msg->_impl_.reason_.limit_;
}
const ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid&
PushTokenPaging_ValidationError::_Internal::offset(const PushTokenPaging_ValidationError* msg) {
  return *msg->_impl_.reason_.offset_;
}
void PushTokenPaging_ValidationError::set_allocated_limit(::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid* limit) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (limit) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(limit);
    if (message_arena != submessage_arena) {
      limit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, limit, submessage_arena);
    }
    set_has_limit();
    _impl_.reason_.limit_ = limit;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushTokenPaging.ValidationError.limit)
}
void PushTokenPaging_ValidationError::set_allocated_offset(::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid* offset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (offset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(offset);
    if (message_arena != submessage_arena) {
      offset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, offset, submessage_arena);
    }
    set_has_offset();
    _impl_.reason_.offset_ = offset;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PushTokenPaging.ValidationError.offset)
}
PushTokenPaging_ValidationError::PushTokenPaging_ValidationError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushTokenPaging.ValidationError)
}
PushTokenPaging_ValidationError::PushTokenPaging_ValidationError(const PushTokenPaging_ValidationError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PushTokenPaging_ValidationError* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kLimit: {
      _this->_internal_mutable_limit()->::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid::MergeFrom(
          from._internal_limit());
      break;
    }
    case kOffset: {
      _this->_internal_mutable_offset()->::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid::MergeFrom(
          from._internal_offset());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushTokenPaging.ValidationError)
}

inline void PushTokenPaging_ValidationError::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

PushTokenPaging_ValidationError::~PushTokenPaging_ValidationError() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushTokenPaging.ValidationError)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTokenPaging_ValidationError::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void PushTokenPaging_ValidationError::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTokenPaging_ValidationError::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.PushTokenPaging.ValidationError)
  switch (reason_case()) {
    case kLimit: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.limit_;
      }
      break;
    }
    case kOffset: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.offset_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void PushTokenPaging_ValidationError::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushTokenPaging.ValidationError)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* PushTokenPaging_ValidationError::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid limit = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_limit(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid offset = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_offset(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushTokenPaging_ValidationError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushTokenPaging.ValidationError)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kLimit: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::limit(this),
          _Internal::limit(this).GetCachedSize(), target, stream);
      break;
    }
    case kOffset: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::offset(this),
          _Internal::offset(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushTokenPaging.ValidationError)
  return target;
}

::size_t PushTokenPaging_ValidationError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushTokenPaging.ValidationError)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid limit = 1;
    case kLimit: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.limit_);
      break;
    }
    // .keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid offset = 2;
    case kOffset: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.offset_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushTokenPaging_ValidationError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushTokenPaging_ValidationError*>(
      &from));
}

void PushTokenPaging_ValidationError::MergeFrom(const PushTokenPaging_ValidationError& from) {
  PushTokenPaging_ValidationError* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushTokenPaging.ValidationError)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kLimit: {
      _this->_internal_mutable_limit()->::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid::MergeFrom(
          from._internal_limit());
      break;
    }
    case kOffset: {
      _this->_internal_mutable_offset()->::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid::MergeFrom(
          from._internal_offset());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushTokenPaging_ValidationError::CopyFrom(const PushTokenPaging_ValidationError& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushTokenPaging.ValidationError)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTokenPaging_ValidationError::IsInitialized() const {
  return true;
}

void PushTokenPaging_ValidationError::InternalSwap(PushTokenPaging_ValidationError* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string PushTokenPaging_ValidationError::GetTypeName() const {
  return "keyapis.notification.v1.PushTokenPaging.ValidationError";
}

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

class PushTokenPaging::_Internal {
 public:
};

PushTokenPaging::PushTokenPaging(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PushTokenPaging)
}
PushTokenPaging::PushTokenPaging(const PushTokenPaging& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PushTokenPaging)
}

inline void PushTokenPaging::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.order_by_type_) { 0 }

    , decltype(_impl_.direction_type_) { 0 }

    , decltype(_impl_.limit_) { 0 }

    , decltype(_impl_.offset_) { 0 }

    , /*decltype(_impl_._cached_size_)*/{}
  };
}

PushTokenPaging::~PushTokenPaging() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PushTokenPaging)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTokenPaging::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void PushTokenPaging::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTokenPaging::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PushTokenPaging)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&_impl_.order_by_type_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.offset_) -
      reinterpret_cast<char*>(&_impl_.order_by_type_)) + sizeof(_impl_.offset_));
  _internal_metadata_.Clear<std::string>();
}

const char* PushTokenPaging::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushTokenPaging.OrderByType order_by_type = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_order_by_type(static_cast<::keyapis::notification::v1::PushTokenPaging_OrderByType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PushTokenPaging.DirectionType direction_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_direction_type(static_cast<::keyapis::notification::v1::PushTokenPaging_DirectionType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // int32 limit = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 24)) {
          _impl_.limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // int32 offset = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 32)) {
          _impl_.offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PushTokenPaging::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PushTokenPaging)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.PushTokenPaging.OrderByType order_by_type = 1;
  if (this->_internal_order_by_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this->_internal_order_by_type(), target);
  }

  // .keyapis.notification.v1.PushTokenPaging.DirectionType direction_type = 2;
  if (this->_internal_direction_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this->_internal_direction_type(), target);
  }

  // int32 limit = 3;
  if (this->_internal_limit() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        3, this->_internal_limit(), target);
  }

  // int32 offset = 4;
  if (this->_internal_offset() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        4, this->_internal_offset(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PushTokenPaging)
  return target;
}

::size_t PushTokenPaging::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PushTokenPaging)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .keyapis.notification.v1.PushTokenPaging.OrderByType order_by_type = 1;
  if (this->_internal_order_by_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_order_by_type());
  }

  // .keyapis.notification.v1.PushTokenPaging.DirectionType direction_type = 2;
  if (this->_internal_direction_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_direction_type());
  }

  // int32 limit = 3;
  if (this->_internal_limit() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
        this->_internal_limit());
  }

  // int32 offset = 4;
  if (this->_internal_offset() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
        this->_internal_offset());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PushTokenPaging::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PushTokenPaging*>(
      &from));
}

void PushTokenPaging::MergeFrom(const PushTokenPaging& from) {
  PushTokenPaging* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PushTokenPaging)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_order_by_type() != 0) {
    _this->_internal_set_order_by_type(from._internal_order_by_type());
  }
  if (from._internal_direction_type() != 0) {
    _this->_internal_set_direction_type(from._internal_direction_type());
  }
  if (from._internal_limit() != 0) {
    _this->_internal_set_limit(from._internal_limit());
  }
  if (from._internal_offset() != 0) {
    _this->_internal_set_offset(from._internal_offset());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PushTokenPaging::CopyFrom(const PushTokenPaging& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PushTokenPaging)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTokenPaging::IsInitialized() const {
  return true;
}

void PushTokenPaging::InternalSwap(PushTokenPaging* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PushTokenPaging, _impl_.offset_)
      + sizeof(PushTokenPaging::_impl_.offset_)
      - PROTOBUF_FIELD_OFFSET(PushTokenPaging, _impl_.order_by_type_)>(
          reinterpret_cast<char*>(&_impl_.order_by_type_),
          reinterpret_cast<char*>(&other->_impl_.order_by_type_));
}

std::string PushTokenPaging::GetTypeName() const {
  return "keyapis.notification.v1.PushTokenPaging";
}

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

class PostPushTokenRequest::_Internal {
 public:
  using HasBits = decltype(std::declval<PostPushTokenRequest>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(PostPushTokenRequest, _impl_._has_bits_);
  static const ::keyapis::notification::v1::PushToken& data(const PostPushTokenRequest* msg);
  static void set_has_data(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

const ::keyapis::notification::v1::PushToken&
PostPushTokenRequest::_Internal::data(const PostPushTokenRequest* msg) {
  return *msg->_impl_.data_;
}
PostPushTokenRequest::PostPushTokenRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PostPushTokenRequest)
}
PostPushTokenRequest::PostPushTokenRequest(const PostPushTokenRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostPushTokenRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.data_){nullptr}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.data_ = new ::keyapis::notification::v1::PushToken(*from._impl_.data_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PostPushTokenRequest)
}

inline void PostPushTokenRequest::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.data_){nullptr}
  };
}

PostPushTokenRequest::~PostPushTokenRequest() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PostPushTokenRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PostPushTokenRequest::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete _impl_.data_;
}

void PostPushTokenRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PostPushTokenRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PostPushTokenRequest)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    ABSL_DCHECK(_impl_.data_ != nullptr);
    _impl_.data_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* PostPushTokenRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushToken data = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_data(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PostPushTokenRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PostPushTokenRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.notification.v1.PushToken data = 1 [(.google.api.field_behavior) = REQUIRED];
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::data(this),
        _Internal::data(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PostPushTokenRequest)
  return target;
}

::size_t PostPushTokenRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PostPushTokenRequest)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .keyapis.notification.v1.PushToken data = 1 [(.google.api.field_behavior) = REQUIRED];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.data_);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PostPushTokenRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PostPushTokenRequest*>(
      &from));
}

void PostPushTokenRequest::MergeFrom(const PostPushTokenRequest& from) {
  PostPushTokenRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PostPushTokenRequest)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_internal_mutable_data()->::keyapis::notification::v1::PushToken::MergeFrom(
        from._internal_data());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PostPushTokenRequest::CopyFrom(const PostPushTokenRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PostPushTokenRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PostPushTokenRequest::IsInitialized() const {
  return true;
}

void PostPushTokenRequest::InternalSwap(PostPushTokenRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.data_, other->_impl_.data_);
}

std::string PostPushTokenRequest::GetTypeName() const {
  return "keyapis.notification.v1.PostPushTokenRequest";
}

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

class PostPushTokenResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::PostPushTokenResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushToken_ValidationError& push_token_validation(const PostPushTokenResponse_Error* msg);
  static const ::keyapis::notification::v1::PushToken_SavingError& push_token_saving(const PostPushTokenResponse_Error* msg);
  static const ::keyapis::notification::v1::ValidationError& validation(const PostPushTokenResponse_Error* msg);
};

const ::keyapis::notification::v1::PushToken_ValidationError&
PostPushTokenResponse_Error::_Internal::push_token_validation(const PostPushTokenResponse_Error* msg) {
  return *msg->_impl_.reason_.push_token_validation_;
}
const ::keyapis::notification::v1::PushToken_SavingError&
PostPushTokenResponse_Error::_Internal::push_token_saving(const PostPushTokenResponse_Error* msg) {
  return *msg->_impl_.reason_.push_token_saving_;
}
const ::keyapis::notification::v1::ValidationError&
PostPushTokenResponse_Error::_Internal::validation(const PostPushTokenResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void PostPushTokenResponse_Error::set_allocated_push_token_validation(::keyapis::notification::v1::PushToken_ValidationError* push_token_validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (push_token_validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(push_token_validation);
    if (message_arena != submessage_arena) {
      push_token_validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, push_token_validation, submessage_arena);
    }
    set_has_push_token_validation();
    _impl_.reason_.push_token_validation_ = push_token_validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_validation)
}
void PostPushTokenResponse_Error::set_allocated_push_token_saving(::keyapis::notification::v1::PushToken_SavingError* push_token_saving) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (push_token_saving) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(push_token_saving);
    if (message_arena != submessage_arena) {
      push_token_saving = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, push_token_saving, submessage_arena);
    }
    set_has_push_token_saving();
    _impl_.reason_.push_token_saving_ = push_token_saving;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PostPushTokenResponse.Error.push_token_saving)
}
void PostPushTokenResponse_Error::set_allocated_validation(::keyapis::notification::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PostPushTokenResponse.Error.validation)
}
PostPushTokenResponse_Error::PostPushTokenResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PostPushTokenResponse.Error)
}
PostPushTokenResponse_Error::PostPushTokenResponse_Error(const PostPushTokenResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostPushTokenResponse_Error* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kPushTokenValidation: {
      _this->_internal_mutable_push_token_validation()->::keyapis::notification::v1::PushToken_ValidationError::MergeFrom(
          from._internal_push_token_validation());
      break;
    }
    case kPushTokenSaving: {
      _this->_internal_mutable_push_token_saving()->::keyapis::notification::v1::PushToken_SavingError::MergeFrom(
          from._internal_push_token_saving());
      break;
    }
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PostPushTokenResponse.Error)
}

inline void PostPushTokenResponse_Error::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

PostPushTokenResponse_Error::~PostPushTokenResponse_Error() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PostPushTokenResponse.Error)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PostPushTokenResponse_Error::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void PostPushTokenResponse_Error::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PostPushTokenResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.PostPushTokenResponse.Error)
  switch (reason_case()) {
    case kPushTokenValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.push_token_validation_;
      }
      break;
    }
    case kPushTokenSaving: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.push_token_saving_;
      }
      break;
    }
    case kValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void PostPushTokenResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PostPushTokenResponse.Error)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* PostPushTokenResponse_Error::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushToken.ValidationError push_token_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_push_token_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PushToken.SavingError push_token_saving = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_push_token_saving(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.ValidationError validation = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PostPushTokenResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PostPushTokenResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kPushTokenValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::push_token_validation(this),
          _Internal::push_token_validation(this).GetCachedSize(), target, stream);
      break;
    }
    case kPushTokenSaving: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::push_token_saving(this),
          _Internal::push_token_saving(this).GetCachedSize(), target, stream);
      break;
    }
    case kValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, _Internal::validation(this),
          _Internal::validation(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PostPushTokenResponse.Error)
  return target;
}

::size_t PostPushTokenResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PostPushTokenResponse.Error)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.PushToken.ValidationError push_token_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
    case kPushTokenValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.push_token_validation_);
      break;
    }
    // .keyapis.notification.v1.PushToken.SavingError push_token_saving = 2;
    case kPushTokenSaving: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.push_token_saving_);
      break;
    }
    // .keyapis.notification.v1.ValidationError validation = 3;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PostPushTokenResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PostPushTokenResponse_Error*>(
      &from));
}

void PostPushTokenResponse_Error::MergeFrom(const PostPushTokenResponse_Error& from) {
  PostPushTokenResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PostPushTokenResponse.Error)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kPushTokenValidation: {
      _this->_internal_mutable_push_token_validation()->::keyapis::notification::v1::PushToken_ValidationError::MergeFrom(
          from._internal_push_token_validation());
      break;
    }
    case kPushTokenSaving: {
      _this->_internal_mutable_push_token_saving()->::keyapis::notification::v1::PushToken_SavingError::MergeFrom(
          from._internal_push_token_saving());
      break;
    }
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PostPushTokenResponse_Error::CopyFrom(const PostPushTokenResponse_Error& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PostPushTokenResponse.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PostPushTokenResponse_Error::IsInitialized() const {
  return true;
}

void PostPushTokenResponse_Error::InternalSwap(PostPushTokenResponse_Error* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string PostPushTokenResponse_Error::GetTypeName() const {
  return "keyapis.notification.v1.PostPushTokenResponse.Error";
}

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

class PostPushTokenResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::PostPushTokenResponse, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushToken& data(const PostPushTokenResponse* msg);
  static const ::keyapis::notification::v1::PostPushTokenResponse_Error& error(const PostPushTokenResponse* msg);
};

const ::keyapis::notification::v1::PushToken&
PostPushTokenResponse::_Internal::data(const PostPushTokenResponse* msg) {
  return *msg->_impl_.type_.data_;
}
const ::keyapis::notification::v1::PostPushTokenResponse_Error&
PostPushTokenResponse::_Internal::error(const PostPushTokenResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void PostPushTokenResponse::set_allocated_data(::keyapis::notification::v1::PushToken* data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  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);
    }
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PostPushTokenResponse.data)
}
void PostPushTokenResponse::set_allocated_error(::keyapis::notification::v1::PostPushTokenResponse_Error* error) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  if (error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(error);
    if (message_arena != submessage_arena) {
      error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error, submessage_arena);
    }
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.PostPushTokenResponse.error)
}
PostPushTokenResponse::PostPushTokenResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.PostPushTokenResponse)
}
PostPushTokenResponse::PostPushTokenResponse(const PostPushTokenResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostPushTokenResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_type();
  switch (from.type_case()) {
    case kData: {
      _this->_internal_mutable_data()->::keyapis::notification::v1::PushToken::MergeFrom(
          from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::PostPushTokenResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.PostPushTokenResponse)
}

inline void PostPushTokenResponse::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_type();
}

PostPushTokenResponse::~PostPushTokenResponse() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.PostPushTokenResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PostPushTokenResponse::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_type()) {
    clear_type();
  }
}

void PostPushTokenResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PostPushTokenResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.PostPushTokenResponse)
  switch (type_case()) {
    case kData: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.data_;
      }
      break;
    }
    case kError: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.error_;
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void PostPushTokenResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.PostPushTokenResponse)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_type();
  _internal_metadata_.Clear<std::string>();
}

const char* PostPushTokenResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushToken data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_data(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PostPushTokenResponse.Error error = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_error(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* PostPushTokenResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.PostPushTokenResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (type_case()) {
    case kData: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::data(this),
          _Internal::data(this).GetCachedSize(), target, stream);
      break;
    }
    case kError: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::error(this),
          _Internal::error(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.PostPushTokenResponse)
  return target;
}

::size_t PostPushTokenResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.PostPushTokenResponse)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (type_case()) {
    // .keyapis.notification.v1.PushToken data = 1;
    case kData: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.data_);
      break;
    }
    // .keyapis.notification.v1.PostPushTokenResponse.Error error = 2;
    case kError: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.error_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PostPushTokenResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PostPushTokenResponse*>(
      &from));
}

void PostPushTokenResponse::MergeFrom(const PostPushTokenResponse& from) {
  PostPushTokenResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.PostPushTokenResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.type_case()) {
    case kData: {
      _this->_internal_mutable_data()->::keyapis::notification::v1::PushToken::MergeFrom(
          from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::PostPushTokenResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PostPushTokenResponse::CopyFrom(const PostPushTokenResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.PostPushTokenResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PostPushTokenResponse::IsInitialized() const {
  return true;
}

void PostPushTokenResponse::InternalSwap(PostPushTokenResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.type_, other->_impl_.type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string PostPushTokenResponse::GetTypeName() const {
  return "keyapis.notification.v1.PostPushTokenResponse";
}

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

class GetPushTokenListRequest::_Internal {
 public:
  using HasBits = decltype(std::declval<GetPushTokenListRequest>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(GetPushTokenListRequest, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::GetPushTokenListRequest, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushTokenFilter& filter(const GetPushTokenListRequest* msg);
  static void set_has_filter(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::keyapis::notification::v1::PushTokenPaging& paging(const GetPushTokenListRequest* msg);
};

const ::keyapis::notification::v1::PushTokenFilter&
GetPushTokenListRequest::_Internal::filter(const GetPushTokenListRequest* msg) {
  return *msg->_impl_.filter_;
}
const ::keyapis::notification::v1::PushTokenPaging&
GetPushTokenListRequest::_Internal::paging(const GetPushTokenListRequest* msg) {
  return *msg->_impl_.pagination_.paging_;
}
void GetPushTokenListRequest::set_allocated_paging(::keyapis::notification::v1::PushTokenPaging* paging) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_pagination();
  if (paging) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(paging);
    if (message_arena != submessage_arena) {
      paging = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, paging, submessage_arena);
    }
    set_has_paging();
    _impl_.pagination_.paging_ = paging;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenListRequest.paging)
}
GetPushTokenListRequest::GetPushTokenListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.GetPushTokenListRequest)
}
GetPushTokenListRequest::GetPushTokenListRequest(const GetPushTokenListRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPushTokenListRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.filter_){nullptr}
    , decltype(_impl_.pagination_){}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.filter_ = new ::keyapis::notification::v1::PushTokenFilter(*from._impl_.filter_);
  }
  clear_has_pagination();
  switch (from.pagination_case()) {
    case kPaging: {
      _this->_internal_mutable_paging()->::keyapis::notification::v1::PushTokenPaging::MergeFrom(
          from._internal_paging());
      break;
    }
    case PAGINATION_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.GetPushTokenListRequest)
}

inline void GetPushTokenListRequest::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.filter_){nullptr}
    , decltype(_impl_.pagination_){}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_pagination();
}

GetPushTokenListRequest::~GetPushTokenListRequest() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.GetPushTokenListRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void GetPushTokenListRequest::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete _impl_.filter_;
  if (has_pagination()) {
    clear_pagination();
  }
}

void GetPushTokenListRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void GetPushTokenListRequest::clear_pagination() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.GetPushTokenListRequest)
  switch (pagination_case()) {
    case kPaging: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.pagination_.paging_;
      }
      break;
    }
    case PAGINATION_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = PAGINATION_NOT_SET;
}


void GetPushTokenListRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.GetPushTokenListRequest)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    ABSL_DCHECK(_impl_.filter_ != nullptr);
    _impl_.filter_->Clear();
  }
  clear_pagination();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* GetPushTokenListRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushTokenFilter filter = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_filter(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PushTokenPaging paging = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_paging(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* GetPushTokenListRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.GetPushTokenListRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.notification.v1.PushTokenFilter filter = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::filter(this),
        _Internal::filter(this).GetCachedSize(), target, stream);
  }

  // .keyapis.notification.v1.PushTokenPaging paging = 2;
  if (pagination_case() == kPaging) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::paging(this),
        _Internal::paging(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.GetPushTokenListRequest)
  return target;
}

::size_t GetPushTokenListRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.GetPushTokenListRequest)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .keyapis.notification.v1.PushTokenFilter filter = 1;
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.filter_);
  }

  switch (pagination_case()) {
    // .keyapis.notification.v1.PushTokenPaging paging = 2;
    case kPaging: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.pagination_.paging_);
      break;
    }
    case PAGINATION_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void GetPushTokenListRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPushTokenListRequest*>(
      &from));
}

void GetPushTokenListRequest::MergeFrom(const GetPushTokenListRequest& from) {
  GetPushTokenListRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.GetPushTokenListRequest)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_internal_mutable_filter()->::keyapis::notification::v1::PushTokenFilter::MergeFrom(
        from._internal_filter());
  }
  switch (from.pagination_case()) {
    case kPaging: {
      _this->_internal_mutable_paging()->::keyapis::notification::v1::PushTokenPaging::MergeFrom(
          from._internal_paging());
      break;
    }
    case PAGINATION_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void GetPushTokenListRequest::CopyFrom(const GetPushTokenListRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.GetPushTokenListRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetPushTokenListRequest::IsInitialized() const {
  return true;
}

void GetPushTokenListRequest::InternalSwap(GetPushTokenListRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.filter_, other->_impl_.filter_);
  swap(_impl_.pagination_, other->_impl_.pagination_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string GetPushTokenListRequest::GetTypeName() const {
  return "keyapis.notification.v1.GetPushTokenListRequest";
}

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

class GetPushTokenCountRequest::_Internal {
 public:
  using HasBits = decltype(std::declval<GetPushTokenCountRequest>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(GetPushTokenCountRequest, _impl_._has_bits_);
  static const ::keyapis::notification::v1::PushTokenFilter& filter(const GetPushTokenCountRequest* msg);
  static void set_has_filter(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

const ::keyapis::notification::v1::PushTokenFilter&
GetPushTokenCountRequest::_Internal::filter(const GetPushTokenCountRequest* msg) {
  return *msg->_impl_.filter_;
}
GetPushTokenCountRequest::GetPushTokenCountRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.GetPushTokenCountRequest)
}
GetPushTokenCountRequest::GetPushTokenCountRequest(const GetPushTokenCountRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPushTokenCountRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.filter_){nullptr}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.filter_ = new ::keyapis::notification::v1::PushTokenFilter(*from._impl_.filter_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.GetPushTokenCountRequest)
}

inline void GetPushTokenCountRequest::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.filter_){nullptr}
  };
}

GetPushTokenCountRequest::~GetPushTokenCountRequest() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.GetPushTokenCountRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void GetPushTokenCountRequest::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete _impl_.filter_;
}

void GetPushTokenCountRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void GetPushTokenCountRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.GetPushTokenCountRequest)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    ABSL_DCHECK(_impl_.filter_ != nullptr);
    _impl_.filter_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* GetPushTokenCountRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushTokenFilter filter = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_filter(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* GetPushTokenCountRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.GetPushTokenCountRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.notification.v1.PushTokenFilter filter = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::filter(this),
        _Internal::filter(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.GetPushTokenCountRequest)
  return target;
}

::size_t GetPushTokenCountRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.GetPushTokenCountRequest)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .keyapis.notification.v1.PushTokenFilter filter = 1;
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.filter_);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void GetPushTokenCountRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPushTokenCountRequest*>(
      &from));
}

void GetPushTokenCountRequest::MergeFrom(const GetPushTokenCountRequest& from) {
  GetPushTokenCountRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.GetPushTokenCountRequest)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_internal_mutable_filter()->::keyapis::notification::v1::PushTokenFilter::MergeFrom(
        from._internal_filter());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void GetPushTokenCountRequest::CopyFrom(const GetPushTokenCountRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.GetPushTokenCountRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetPushTokenCountRequest::IsInitialized() const {
  return true;
}

void GetPushTokenCountRequest::InternalSwap(GetPushTokenCountRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.filter_, other->_impl_.filter_);
}

std::string GetPushTokenCountRequest::GetTypeName() const {
  return "keyapis.notification.v1.GetPushTokenCountRequest";
}

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

class GetPushTokenCountResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::GetPushTokenCountResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushTokenFilter_ValidationError& push_token_filter_validation(const GetPushTokenCountResponse_Error* msg);
  static const ::keyapis::notification::v1::ValidationError& validation(const GetPushTokenCountResponse_Error* msg);
};

const ::keyapis::notification::v1::PushTokenFilter_ValidationError&
GetPushTokenCountResponse_Error::_Internal::push_token_filter_validation(const GetPushTokenCountResponse_Error* msg) {
  return *msg->_impl_.reason_.push_token_filter_validation_;
}
const ::keyapis::notification::v1::ValidationError&
GetPushTokenCountResponse_Error::_Internal::validation(const GetPushTokenCountResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetPushTokenCountResponse_Error::set_allocated_push_token_filter_validation(::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (push_token_filter_validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(push_token_filter_validation);
    if (message_arena != submessage_arena) {
      push_token_filter_validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, push_token_filter_validation, submessage_arena);
    }
    set_has_push_token_filter_validation();
    _impl_.reason_.push_token_filter_validation_ = push_token_filter_validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenCountResponse.Error.push_token_filter_validation)
}
void GetPushTokenCountResponse_Error::set_allocated_validation(::keyapis::notification::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenCountResponse.Error.validation)
}
GetPushTokenCountResponse_Error::GetPushTokenCountResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.GetPushTokenCountResponse.Error)
}
GetPushTokenCountResponse_Error::GetPushTokenCountResponse_Error(const GetPushTokenCountResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPushTokenCountResponse_Error* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kPushTokenFilterValidation: {
      _this->_internal_mutable_push_token_filter_validation()->::keyapis::notification::v1::PushTokenFilter_ValidationError::MergeFrom(
          from._internal_push_token_filter_validation());
      break;
    }
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.GetPushTokenCountResponse.Error)
}

inline void GetPushTokenCountResponse_Error::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

GetPushTokenCountResponse_Error::~GetPushTokenCountResponse_Error() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void GetPushTokenCountResponse_Error::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void GetPushTokenCountResponse_Error::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void GetPushTokenCountResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  switch (reason_case()) {
    case kPushTokenFilterValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.push_token_filter_validation_;
      }
      break;
    }
    case kValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void GetPushTokenCountResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* GetPushTokenCountResponse_Error::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_push_token_filter_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.ValidationError validation = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* GetPushTokenCountResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kPushTokenFilterValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::push_token_filter_validation(this),
          _Internal::push_token_filter_validation(this).GetCachedSize(), target, stream);
      break;
    }
    case kValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::validation(this),
          _Internal::validation(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  return target;
}

::size_t GetPushTokenCountResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
    case kPushTokenFilterValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.push_token_filter_validation_);
      break;
    }
    // .keyapis.notification.v1.ValidationError validation = 2;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void GetPushTokenCountResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPushTokenCountResponse_Error*>(
      &from));
}

void GetPushTokenCountResponse_Error::MergeFrom(const GetPushTokenCountResponse_Error& from) {
  GetPushTokenCountResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kPushTokenFilterValidation: {
      _this->_internal_mutable_push_token_filter_validation()->::keyapis::notification::v1::PushTokenFilter_ValidationError::MergeFrom(
          from._internal_push_token_filter_validation());
      break;
    }
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void GetPushTokenCountResponse_Error::CopyFrom(const GetPushTokenCountResponse_Error& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.GetPushTokenCountResponse.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetPushTokenCountResponse_Error::IsInitialized() const {
  return true;
}

void GetPushTokenCountResponse_Error::InternalSwap(GetPushTokenCountResponse_Error* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string GetPushTokenCountResponse_Error::GetTypeName() const {
  return "keyapis.notification.v1.GetPushTokenCountResponse.Error";
}

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

class GetPushTokenCountResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::GetPushTokenCountResponse, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::GetPushTokenCountResponse_Error& error(const GetPushTokenCountResponse* msg);
};

const ::keyapis::notification::v1::GetPushTokenCountResponse_Error&
GetPushTokenCountResponse::_Internal::error(const GetPushTokenCountResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void GetPushTokenCountResponse::set_allocated_error(::keyapis::notification::v1::GetPushTokenCountResponse_Error* error) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  if (error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(error);
    if (message_arena != submessage_arena) {
      error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error, submessage_arena);
    }
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenCountResponse.error)
}
GetPushTokenCountResponse::GetPushTokenCountResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.GetPushTokenCountResponse)
}
GetPushTokenCountResponse::GetPushTokenCountResponse(const GetPushTokenCountResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPushTokenCountResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_type();
  switch (from.type_case()) {
    case kData: {
      _this->_internal_set_data(from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::GetPushTokenCountResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.GetPushTokenCountResponse)
}

inline void GetPushTokenCountResponse::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_type();
}

GetPushTokenCountResponse::~GetPushTokenCountResponse() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.GetPushTokenCountResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void GetPushTokenCountResponse::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_type()) {
    clear_type();
  }
}

void GetPushTokenCountResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void GetPushTokenCountResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.GetPushTokenCountResponse)
  switch (type_case()) {
    case kData: {
      // No need to clear
      break;
    }
    case kError: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.error_;
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void GetPushTokenCountResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.GetPushTokenCountResponse)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_type();
  _internal_metadata_.Clear<std::string>();
}

const char* GetPushTokenCountResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _internal_set_data(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.GetPushTokenCountResponse.Error error = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_error(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* GetPushTokenCountResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.GetPushTokenCountResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (type_case()) {
    case kData: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          1, this->_internal_data(), target);
      break;
    }
    case kError: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::error(this),
          _Internal::error(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.GetPushTokenCountResponse)
  return target;
}

::size_t GetPushTokenCountResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.GetPushTokenCountResponse)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (type_case()) {
    // int32 data = 1;
    case kData: {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this->_internal_data());
      break;
    }
    // .keyapis.notification.v1.GetPushTokenCountResponse.Error error = 2;
    case kError: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.error_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void GetPushTokenCountResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPushTokenCountResponse*>(
      &from));
}

void GetPushTokenCountResponse::MergeFrom(const GetPushTokenCountResponse& from) {
  GetPushTokenCountResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.GetPushTokenCountResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.type_case()) {
    case kData: {
      _this->_internal_set_data(from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::GetPushTokenCountResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void GetPushTokenCountResponse::CopyFrom(const GetPushTokenCountResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.GetPushTokenCountResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetPushTokenCountResponse::IsInitialized() const {
  return true;
}

void GetPushTokenCountResponse::InternalSwap(GetPushTokenCountResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.type_, other->_impl_.type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string GetPushTokenCountResponse::GetTypeName() const {
  return "keyapis.notification.v1.GetPushTokenCountResponse";
}

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

class GetPushTokenListResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::GetPushTokenListResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushTokenFilter_ValidationError& push_token_filter_validation(const GetPushTokenListResponse_Error* msg);
  static const ::keyapis::notification::v1::PushTokenPaging_ValidationError& push_token_paging_validation(const GetPushTokenListResponse_Error* msg);
  static const ::keyapis::notification::v1::ValidationError& validation(const GetPushTokenListResponse_Error* msg);
};

const ::keyapis::notification::v1::PushTokenFilter_ValidationError&
GetPushTokenListResponse_Error::_Internal::push_token_filter_validation(const GetPushTokenListResponse_Error* msg) {
  return *msg->_impl_.reason_.push_token_filter_validation_;
}
const ::keyapis::notification::v1::PushTokenPaging_ValidationError&
GetPushTokenListResponse_Error::_Internal::push_token_paging_validation(const GetPushTokenListResponse_Error* msg) {
  return *msg->_impl_.reason_.push_token_paging_validation_;
}
const ::keyapis::notification::v1::ValidationError&
GetPushTokenListResponse_Error::_Internal::validation(const GetPushTokenListResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetPushTokenListResponse_Error::set_allocated_push_token_filter_validation(::keyapis::notification::v1::PushTokenFilter_ValidationError* push_token_filter_validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (push_token_filter_validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(push_token_filter_validation);
    if (message_arena != submessage_arena) {
      push_token_filter_validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, push_token_filter_validation, submessage_arena);
    }
    set_has_push_token_filter_validation();
    _impl_.reason_.push_token_filter_validation_ = push_token_filter_validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_filter_validation)
}
void GetPushTokenListResponse_Error::set_allocated_push_token_paging_validation(::keyapis::notification::v1::PushTokenPaging_ValidationError* push_token_paging_validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (push_token_paging_validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(push_token_paging_validation);
    if (message_arena != submessage_arena) {
      push_token_paging_validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, push_token_paging_validation, submessage_arena);
    }
    set_has_push_token_paging_validation();
    _impl_.reason_.push_token_paging_validation_ = push_token_paging_validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenListResponse.Error.push_token_paging_validation)
}
void GetPushTokenListResponse_Error::set_allocated_validation(::keyapis::notification::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenListResponse.Error.validation)
}
GetPushTokenListResponse_Error::GetPushTokenListResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.GetPushTokenListResponse.Error)
}
GetPushTokenListResponse_Error::GetPushTokenListResponse_Error(const GetPushTokenListResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPushTokenListResponse_Error* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kPushTokenFilterValidation: {
      _this->_internal_mutable_push_token_filter_validation()->::keyapis::notification::v1::PushTokenFilter_ValidationError::MergeFrom(
          from._internal_push_token_filter_validation());
      break;
    }
    case kPushTokenPagingValidation: {
      _this->_internal_mutable_push_token_paging_validation()->::keyapis::notification::v1::PushTokenPaging_ValidationError::MergeFrom(
          from._internal_push_token_paging_validation());
      break;
    }
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.GetPushTokenListResponse.Error)
}

inline void GetPushTokenListResponse_Error::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

GetPushTokenListResponse_Error::~GetPushTokenListResponse_Error() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.GetPushTokenListResponse.Error)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void GetPushTokenListResponse_Error::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void GetPushTokenListResponse_Error::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void GetPushTokenListResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.GetPushTokenListResponse.Error)
  switch (reason_case()) {
    case kPushTokenFilterValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.push_token_filter_validation_;
      }
      break;
    }
    case kPushTokenPagingValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.push_token_paging_validation_;
      }
      break;
    }
    case kValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void GetPushTokenListResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.GetPushTokenListResponse.Error)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* GetPushTokenListResponse_Error::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_push_token_filter_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.PushTokenPaging.ValidationError push_token_paging_validation = 2 [deprecated = true, (.google.api.field_visibility) = {
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_push_token_paging_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.ValidationError validation = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* GetPushTokenListResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.GetPushTokenListResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kPushTokenFilterValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::push_token_filter_validation(this),
          _Internal::push_token_filter_validation(this).GetCachedSize(), target, stream);
      break;
    }
    case kPushTokenPagingValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::push_token_paging_validation(this),
          _Internal::push_token_paging_validation(this).GetCachedSize(), target, stream);
      break;
    }
    case kValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, _Internal::validation(this),
          _Internal::validation(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.GetPushTokenListResponse.Error)
  return target;
}

::size_t GetPushTokenListResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.GetPushTokenListResponse.Error)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.PushTokenFilter.ValidationError push_token_filter_validation = 1 [deprecated = true, (.google.api.field_visibility) = {
    case kPushTokenFilterValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.push_token_filter_validation_);
      break;
    }
    // .keyapis.notification.v1.PushTokenPaging.ValidationError push_token_paging_validation = 2 [deprecated = true, (.google.api.field_visibility) = {
    case kPushTokenPagingValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.push_token_paging_validation_);
      break;
    }
    // .keyapis.notification.v1.ValidationError validation = 3;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void GetPushTokenListResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPushTokenListResponse_Error*>(
      &from));
}

void GetPushTokenListResponse_Error::MergeFrom(const GetPushTokenListResponse_Error& from) {
  GetPushTokenListResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.GetPushTokenListResponse.Error)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kPushTokenFilterValidation: {
      _this->_internal_mutable_push_token_filter_validation()->::keyapis::notification::v1::PushTokenFilter_ValidationError::MergeFrom(
          from._internal_push_token_filter_validation());
      break;
    }
    case kPushTokenPagingValidation: {
      _this->_internal_mutable_push_token_paging_validation()->::keyapis::notification::v1::PushTokenPaging_ValidationError::MergeFrom(
          from._internal_push_token_paging_validation());
      break;
    }
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void GetPushTokenListResponse_Error::CopyFrom(const GetPushTokenListResponse_Error& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.GetPushTokenListResponse.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetPushTokenListResponse_Error::IsInitialized() const {
  return true;
}

void GetPushTokenListResponse_Error::InternalSwap(GetPushTokenListResponse_Error* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string GetPushTokenListResponse_Error::GetTypeName() const {
  return "keyapis.notification.v1.GetPushTokenListResponse.Error";
}

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

class GetPushTokenListResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::GetPushTokenListResponse, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::PushToken& data(const GetPushTokenListResponse* msg);
  static const ::keyapis::notification::v1::GetPushTokenListResponse_Error& error(const GetPushTokenListResponse* msg);
};

const ::keyapis::notification::v1::PushToken&
GetPushTokenListResponse::_Internal::data(const GetPushTokenListResponse* msg) {
  return *msg->_impl_.type_.data_;
}
const ::keyapis::notification::v1::GetPushTokenListResponse_Error&
GetPushTokenListResponse::_Internal::error(const GetPushTokenListResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void GetPushTokenListResponse::set_allocated_data(::keyapis::notification::v1::PushToken* data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  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);
    }
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenListResponse.data)
}
void GetPushTokenListResponse::set_allocated_error(::keyapis::notification::v1::GetPushTokenListResponse_Error* error) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  if (error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(error);
    if (message_arena != submessage_arena) {
      error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error, submessage_arena);
    }
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.GetPushTokenListResponse.error)
}
GetPushTokenListResponse::GetPushTokenListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.GetPushTokenListResponse)
}
GetPushTokenListResponse::GetPushTokenListResponse(const GetPushTokenListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPushTokenListResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_type();
  switch (from.type_case()) {
    case kData: {
      _this->_internal_mutable_data()->::keyapis::notification::v1::PushToken::MergeFrom(
          from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::GetPushTokenListResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.GetPushTokenListResponse)
}

inline void GetPushTokenListResponse::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_type();
}

GetPushTokenListResponse::~GetPushTokenListResponse() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.GetPushTokenListResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void GetPushTokenListResponse::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_type()) {
    clear_type();
  }
}

void GetPushTokenListResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void GetPushTokenListResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.GetPushTokenListResponse)
  switch (type_case()) {
    case kData: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.data_;
      }
      break;
    }
    case kError: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.error_;
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void GetPushTokenListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.GetPushTokenListResponse)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_type();
  _internal_metadata_.Clear<std::string>();
}

const char* GetPushTokenListResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.PushToken data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_data(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.notification.v1.GetPushTokenListResponse.Error error = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_error(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* GetPushTokenListResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.GetPushTokenListResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (type_case()) {
    case kData: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::data(this),
          _Internal::data(this).GetCachedSize(), target, stream);
      break;
    }
    case kError: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::error(this),
          _Internal::error(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.GetPushTokenListResponse)
  return target;
}

::size_t GetPushTokenListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.GetPushTokenListResponse)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (type_case()) {
    // .keyapis.notification.v1.PushToken data = 1;
    case kData: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.data_);
      break;
    }
    // .keyapis.notification.v1.GetPushTokenListResponse.Error error = 2;
    case kError: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.error_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void GetPushTokenListResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPushTokenListResponse*>(
      &from));
}

void GetPushTokenListResponse::MergeFrom(const GetPushTokenListResponse& from) {
  GetPushTokenListResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.GetPushTokenListResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.type_case()) {
    case kData: {
      _this->_internal_mutable_data()->::keyapis::notification::v1::PushToken::MergeFrom(
          from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::GetPushTokenListResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void GetPushTokenListResponse::CopyFrom(const GetPushTokenListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.GetPushTokenListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetPushTokenListResponse::IsInitialized() const {
  return true;
}

void GetPushTokenListResponse::InternalSwap(GetPushTokenListResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.type_, other->_impl_.type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string GetPushTokenListResponse::GetTypeName() const {
  return "keyapis.notification.v1.GetPushTokenListResponse";
}

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

class DeletePushTokenRequest::_Internal {
 public:
};

DeletePushTokenRequest::DeletePushTokenRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenRequest)
}
DeletePushTokenRequest::DeletePushTokenRequest(const DeletePushTokenRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenRequest)
}

inline void DeletePushTokenRequest::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.id_) { 0 }

    , /*decltype(_impl_._cached_size_)*/{}
  };
}

DeletePushTokenRequest::~DeletePushTokenRequest() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenRequest::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void DeletePushTokenRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenRequest)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.id_ = 0;
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 id = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 id = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        1, this->_internal_id(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenRequest)
  return target;
}

::size_t DeletePushTokenRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenRequest)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 id = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
        this->_internal_id());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenRequest*>(
      &from));
}

void DeletePushTokenRequest::MergeFrom(const DeletePushTokenRequest& from) {
  DeletePushTokenRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenRequest)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_id() != 0) {
    _this->_internal_set_id(from._internal_id());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenRequest::CopyFrom(const DeletePushTokenRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenRequest::IsInitialized() const {
  return true;
}

void DeletePushTokenRequest::InternalSwap(DeletePushTokenRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);

  swap(_impl_.id_, other->_impl_.id_);
}

std::string DeletePushTokenRequest::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenRequest";
}

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

class DeletePushTokenResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::DeletePushTokenResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::ValidationError& validation(const DeletePushTokenResponse_Error* msg);
};

const ::keyapis::notification::v1::ValidationError&
DeletePushTokenResponse_Error::_Internal::validation(const DeletePushTokenResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void DeletePushTokenResponse_Error::set_allocated_validation(::keyapis::notification::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.DeletePushTokenResponse.Error.validation)
}
DeletePushTokenResponse_Error::DeletePushTokenResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenResponse.Error)
}
DeletePushTokenResponse_Error::DeletePushTokenResponse_Error(const DeletePushTokenResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeletePushTokenResponse_Error* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenResponse.Error)
}

inline void DeletePushTokenResponse_Error::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

DeletePushTokenResponse_Error::~DeletePushTokenResponse_Error() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenResponse.Error)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenResponse_Error::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void DeletePushTokenResponse_Error::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.DeletePushTokenResponse.Error)
  switch (reason_case()) {
    case kValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void DeletePushTokenResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenResponse.Error)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenResponse_Error::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.ValidationError validation = 1;
  if (reason_case() == kValidation) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::validation(this),
        _Internal::validation(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenResponse.Error)
  return target;
}

::size_t DeletePushTokenResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenResponse.Error)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenResponse_Error*>(
      &from));
}

void DeletePushTokenResponse_Error::MergeFrom(const DeletePushTokenResponse_Error& from) {
  DeletePushTokenResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenResponse.Error)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenResponse_Error::CopyFrom(const DeletePushTokenResponse_Error& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenResponse.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenResponse_Error::IsInitialized() const {
  return true;
}

void DeletePushTokenResponse_Error::InternalSwap(DeletePushTokenResponse_Error* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string DeletePushTokenResponse_Error::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenResponse.Error";
}

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

class DeletePushTokenResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::DeletePushTokenResponse, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::DeletePushTokenResponse_Error& error(const DeletePushTokenResponse* msg);
};

const ::keyapis::notification::v1::DeletePushTokenResponse_Error&
DeletePushTokenResponse::_Internal::error(const DeletePushTokenResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void DeletePushTokenResponse::set_allocated_error(::keyapis::notification::v1::DeletePushTokenResponse_Error* error) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  if (error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(error);
    if (message_arena != submessage_arena) {
      error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error, submessage_arena);
    }
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.DeletePushTokenResponse.error)
}
DeletePushTokenResponse::DeletePushTokenResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenResponse)
}
DeletePushTokenResponse::DeletePushTokenResponse(const DeletePushTokenResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeletePushTokenResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_type();
  switch (from.type_case()) {
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::DeletePushTokenResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenResponse)
}

inline void DeletePushTokenResponse::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_type();
}

DeletePushTokenResponse::~DeletePushTokenResponse() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenResponse::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_type()) {
    clear_type();
  }
}

void DeletePushTokenResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.DeletePushTokenResponse)
  switch (type_case()) {
    case kError: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.error_;
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void DeletePushTokenResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenResponse)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_type();
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.DeletePushTokenResponse.Error error = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_error(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.DeletePushTokenResponse.Error error = 1;
  if (type_case() == kError) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::error(this),
        _Internal::error(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenResponse)
  return target;
}

::size_t DeletePushTokenResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenResponse)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (type_case()) {
    // .keyapis.notification.v1.DeletePushTokenResponse.Error error = 1;
    case kError: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.error_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenResponse*>(
      &from));
}

void DeletePushTokenResponse::MergeFrom(const DeletePushTokenResponse& from) {
  DeletePushTokenResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.type_case()) {
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::DeletePushTokenResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenResponse::CopyFrom(const DeletePushTokenResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenResponse::IsInitialized() const {
  return true;
}

void DeletePushTokenResponse::InternalSwap(DeletePushTokenResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.type_, other->_impl_.type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string DeletePushTokenResponse::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenResponse";
}

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

class DeletePushTokenUserIdRequest::_Internal {
 public:
};

DeletePushTokenUserIdRequest::DeletePushTokenUserIdRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenUserIdRequest)
}
DeletePushTokenUserIdRequest::DeletePushTokenUserIdRequest(const DeletePushTokenUserIdRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenUserIdRequest)
}

inline void DeletePushTokenUserIdRequest::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.user_id_) { 0 }

    , /*decltype(_impl_._cached_size_)*/{}
  };
}

DeletePushTokenUserIdRequest::~DeletePushTokenUserIdRequest() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenUserIdRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenUserIdRequest::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}

void DeletePushTokenUserIdRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenUserIdRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenUserIdRequest)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.user_id_ = 0;
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenUserIdRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 user_id = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _impl_.user_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenUserIdRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenUserIdRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 user_id = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_user_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        1, this->_internal_user_id(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenUserIdRequest)
  return target;
}

::size_t DeletePushTokenUserIdRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenUserIdRequest)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 user_id = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_user_id() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
        this->_internal_user_id());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenUserIdRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenUserIdRequest*>(
      &from));
}

void DeletePushTokenUserIdRequest::MergeFrom(const DeletePushTokenUserIdRequest& from) {
  DeletePushTokenUserIdRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenUserIdRequest)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_user_id() != 0) {
    _this->_internal_set_user_id(from._internal_user_id());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenUserIdRequest::CopyFrom(const DeletePushTokenUserIdRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenUserIdRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenUserIdRequest::IsInitialized() const {
  return true;
}

void DeletePushTokenUserIdRequest::InternalSwap(DeletePushTokenUserIdRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);

  swap(_impl_.user_id_, other->_impl_.user_id_);
}

std::string DeletePushTokenUserIdRequest::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenUserIdRequest";
}

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

class DeletePushTokenUserIdResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::ValidationError& validation(const DeletePushTokenUserIdResponse_Error* msg);
};

const ::keyapis::notification::v1::ValidationError&
DeletePushTokenUserIdResponse_Error::_Internal::validation(const DeletePushTokenUserIdResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void DeletePushTokenUserIdResponse_Error::set_allocated_validation(::keyapis::notification::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error.validation)
}
DeletePushTokenUserIdResponse_Error::DeletePushTokenUserIdResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
}
DeletePushTokenUserIdResponse_Error::DeletePushTokenUserIdResponse_Error(const DeletePushTokenUserIdResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeletePushTokenUserIdResponse_Error* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
}

inline void DeletePushTokenUserIdResponse_Error::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

DeletePushTokenUserIdResponse_Error::~DeletePushTokenUserIdResponse_Error() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenUserIdResponse_Error::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void DeletePushTokenUserIdResponse_Error::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenUserIdResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  switch (reason_case()) {
    case kValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void DeletePushTokenUserIdResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenUserIdResponse_Error::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenUserIdResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.ValidationError validation = 1;
  if (reason_case() == kValidation) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::validation(this),
        _Internal::validation(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  return target;
}

::size_t DeletePushTokenUserIdResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenUserIdResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenUserIdResponse_Error*>(
      &from));
}

void DeletePushTokenUserIdResponse_Error::MergeFrom(const DeletePushTokenUserIdResponse_Error& from) {
  DeletePushTokenUserIdResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenUserIdResponse_Error::CopyFrom(const DeletePushTokenUserIdResponse_Error& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenUserIdResponse.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenUserIdResponse_Error::IsInitialized() const {
  return true;
}

void DeletePushTokenUserIdResponse_Error::InternalSwap(DeletePushTokenUserIdResponse_Error* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string DeletePushTokenUserIdResponse_Error::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenUserIdResponse.Error";
}

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

class DeletePushTokenUserIdResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::DeletePushTokenUserIdResponse, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error& error(const DeletePushTokenUserIdResponse* msg);
};

const ::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error&
DeletePushTokenUserIdResponse::_Internal::error(const DeletePushTokenUserIdResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void DeletePushTokenUserIdResponse::set_allocated_error(::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error* error) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  if (error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(error);
    if (message_arena != submessage_arena) {
      error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error, submessage_arena);
    }
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.DeletePushTokenUserIdResponse.error)
}
DeletePushTokenUserIdResponse::DeletePushTokenUserIdResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenUserIdResponse)
}
DeletePushTokenUserIdResponse::DeletePushTokenUserIdResponse(const DeletePushTokenUserIdResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeletePushTokenUserIdResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_type();
  switch (from.type_case()) {
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenUserIdResponse)
}

inline void DeletePushTokenUserIdResponse::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_type();
}

DeletePushTokenUserIdResponse::~DeletePushTokenUserIdResponse() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenUserIdResponse::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_type()) {
    clear_type();
  }
}

void DeletePushTokenUserIdResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenUserIdResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  switch (type_case()) {
    case kError: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.error_;
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void DeletePushTokenUserIdResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_type();
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenUserIdResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.DeletePushTokenUserIdResponse.Error error = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_error(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenUserIdResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.DeletePushTokenUserIdResponse.Error error = 1;
  if (type_case() == kError) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::error(this),
        _Internal::error(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  return target;
}

::size_t DeletePushTokenUserIdResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (type_case()) {
    // .keyapis.notification.v1.DeletePushTokenUserIdResponse.Error error = 1;
    case kError: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.error_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenUserIdResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenUserIdResponse*>(
      &from));
}

void DeletePushTokenUserIdResponse::MergeFrom(const DeletePushTokenUserIdResponse& from) {
  DeletePushTokenUserIdResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.type_case()) {
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenUserIdResponse::CopyFrom(const DeletePushTokenUserIdResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenUserIdResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenUserIdResponse::IsInitialized() const {
  return true;
}

void DeletePushTokenUserIdResponse::InternalSwap(DeletePushTokenUserIdResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.type_, other->_impl_.type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string DeletePushTokenUserIdResponse::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenUserIdResponse";
}

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

class DeletePushTokenUserAppIdRequest::_Internal {
 public:
};

DeletePushTokenUserAppIdRequest::DeletePushTokenUserAppIdRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
}
DeletePushTokenUserAppIdRequest::DeletePushTokenUserAppIdRequest(const DeletePushTokenUserAppIdRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeletePushTokenUserAppIdRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.user_app_id_) {}

    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.user_app_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.user_app_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_user_app_id().empty()) {
    _this->_impl_.user_app_id_.Set(from._internal_user_app_id(), _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
}

inline void DeletePushTokenUserAppIdRequest::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.user_app_id_) {}

    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.user_app_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.user_app_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

DeletePushTokenUserAppIdRequest::~DeletePushTokenUserAppIdRequest() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenUserAppIdRequest::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.user_app_id_.Destroy();
}

void DeletePushTokenUserAppIdRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenUserAppIdRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.user_app_id_.ClearToEmpty();
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenUserAppIdRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string user_app_id = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_user_app_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenUserAppIdRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string user_app_id = 1 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_user_app_id().empty()) {
    const std::string& _s = this->_internal_user_app_id();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.notification.v1.DeletePushTokenUserAppIdRequest.user_app_id");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
  return target;
}

::size_t DeletePushTokenUserAppIdRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string user_app_id = 1 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_user_app_id().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_user_app_id());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenUserAppIdRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenUserAppIdRequest*>(
      &from));
}

void DeletePushTokenUserAppIdRequest::MergeFrom(const DeletePushTokenUserAppIdRequest& from) {
  DeletePushTokenUserAppIdRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_user_app_id().empty()) {
    _this->_internal_set_user_app_id(from._internal_user_app_id());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenUserAppIdRequest::CopyFrom(const DeletePushTokenUserAppIdRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenUserAppIdRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenUserAppIdRequest::IsInitialized() const {
  return true;
}

void DeletePushTokenUserAppIdRequest::InternalSwap(DeletePushTokenUserAppIdRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.user_app_id_, lhs_arena,
                                       &other->_impl_.user_app_id_, rhs_arena);
}

std::string DeletePushTokenUserAppIdRequest::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenUserAppIdRequest";
}

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

class DeletePushTokenUserAppIdResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::ValidationError& validation(const DeletePushTokenUserAppIdResponse_Error* msg);
};

const ::keyapis::notification::v1::ValidationError&
DeletePushTokenUserAppIdResponse_Error::_Internal::validation(const DeletePushTokenUserAppIdResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void DeletePushTokenUserAppIdResponse_Error::set_allocated_validation(::keyapis::notification::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error.validation)
}
DeletePushTokenUserAppIdResponse_Error::DeletePushTokenUserAppIdResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
}
DeletePushTokenUserAppIdResponse_Error::DeletePushTokenUserAppIdResponse_Error(const DeletePushTokenUserAppIdResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeletePushTokenUserAppIdResponse_Error* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
}

inline void DeletePushTokenUserAppIdResponse_Error::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_reason();
}

DeletePushTokenUserAppIdResponse_Error::~DeletePushTokenUserAppIdResponse_Error() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenUserAppIdResponse_Error::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_reason()) {
    clear_reason();
  }
}

void DeletePushTokenUserAppIdResponse_Error::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenUserAppIdResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  switch (reason_case()) {
    case kValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void DeletePushTokenUserAppIdResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_reason();
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenUserAppIdResponse_Error::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenUserAppIdResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.ValidationError validation = 1;
  if (reason_case() == kValidation) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::validation(this),
        _Internal::validation(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  return target;
}

::size_t DeletePushTokenUserAppIdResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (reason_case()) {
    // .keyapis.notification.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenUserAppIdResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenUserAppIdResponse_Error*>(
      &from));
}

void DeletePushTokenUserAppIdResponse_Error::MergeFrom(const DeletePushTokenUserAppIdResponse_Error& from) {
  DeletePushTokenUserAppIdResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::notification::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenUserAppIdResponse_Error::CopyFrom(const DeletePushTokenUserAppIdResponse_Error& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenUserAppIdResponse_Error::IsInitialized() const {
  return true;
}

void DeletePushTokenUserAppIdResponse_Error::InternalSwap(DeletePushTokenUserAppIdResponse_Error* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reason_, other->_impl_.reason_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string DeletePushTokenUserAppIdResponse_Error::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error";
}

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

class DeletePushTokenUserAppIdResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::notification::v1::DeletePushTokenUserAppIdResponse, _impl_._oneof_case_);
  static const ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error& error(const DeletePushTokenUserAppIdResponse* msg);
};

const ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error&
DeletePushTokenUserAppIdResponse::_Internal::error(const DeletePushTokenUserAppIdResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void DeletePushTokenUserAppIdResponse::set_allocated_error(::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error* error) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  if (error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(error);
    if (message_arena != submessage_arena) {
      error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error, submessage_arena);
    }
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.notification.v1.DeletePushTokenUserAppIdResponse.error)
}
DeletePushTokenUserAppIdResponse::DeletePushTokenUserAppIdResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
}
DeletePushTokenUserAppIdResponse::DeletePushTokenUserAppIdResponse(const DeletePushTokenUserAppIdResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeletePushTokenUserAppIdResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_type();
  switch (from.type_case()) {
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
}

inline void DeletePushTokenUserAppIdResponse::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_type();
}

DeletePushTokenUserAppIdResponse::~DeletePushTokenUserAppIdResponse() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DeletePushTokenUserAppIdResponse::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_type()) {
    clear_type();
  }
}

void DeletePushTokenUserAppIdResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DeletePushTokenUserAppIdResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  switch (type_case()) {
    case kError: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.error_;
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void DeletePushTokenUserAppIdResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_type();
  _internal_metadata_.Clear<std::string>();
}

const char* DeletePushTokenUserAppIdResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error error = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_error(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* DeletePushTokenUserAppIdResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error error = 1;
  if (type_case() == kError) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::error(this),
        _Internal::error(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  return target;
}

::size_t DeletePushTokenUserAppIdResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (type_case()) {
    // .keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error error = 1;
    case kError: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.error_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePushTokenUserAppIdResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const DeletePushTokenUserAppIdResponse*>(
      &from));
}

void DeletePushTokenUserAppIdResponse::MergeFrom(const DeletePushTokenUserAppIdResponse& from) {
  DeletePushTokenUserAppIdResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.type_case()) {
    case kError: {
      _this->_internal_mutable_error()->::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void DeletePushTokenUserAppIdResponse::CopyFrom(const DeletePushTokenUserAppIdResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.DeletePushTokenUserAppIdResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePushTokenUserAppIdResponse::IsInitialized() const {
  return true;
}

void DeletePushTokenUserAppIdResponse::InternalSwap(DeletePushTokenUserAppIdResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.type_, other->_impl_.type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

std::string DeletePushTokenUserAppIdResponse::GetTypeName() const {
  return "keyapis.notification.v1.DeletePushTokenUserAppIdResponse";
}

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

class ValidationError::_Internal {
 public:
};

ValidationError::ValidationError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.notification.v1.ValidationError)
}
ValidationError::ValidationError(const ValidationError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  ValidationError* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.path_) {}

    , decltype(_impl_.message_) {}

    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.path_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.path_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_path().empty()) {
    _this->_impl_.path_.Set(from._internal_path(), _this->GetArenaForAllocation());
  }
  _impl_.message_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.message_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_message().empty()) {
    _this->_impl_.message_.Set(from._internal_message(), _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.notification.v1.ValidationError)
}

inline void ValidationError::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.path_) {}

    , decltype(_impl_.message_) {}

    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.path_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.path_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.message_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.message_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ValidationError::~ValidationError() {
  // @@protoc_insertion_point(destructor:keyapis.notification.v1.ValidationError)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ValidationError::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.path_.Destroy();
  _impl_.message_.Destroy();
}

void ValidationError::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ValidationError::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.notification.v1.ValidationError)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.path_.ClearToEmpty();
  _impl_.message_.ClearToEmpty();
  _internal_metadata_.Clear<std::string>();
}

const char* ValidationError::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string path = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_path();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // string message = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_message();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::uint8_t* ValidationError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.notification.v1.ValidationError)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string path = 1 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_path().empty()) {
    const std::string& _s = this->_internal_path();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.notification.v1.ValidationError.path");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // string message = 2 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_message().empty()) {
    const std::string& _s = this->_internal_message();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.notification.v1.ValidationError.message");
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.notification.v1.ValidationError)
  return target;
}

::size_t ValidationError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.notification.v1.ValidationError)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string path = 1 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_path().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_path());
  }

  // string message = 2 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_message().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_message());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ValidationError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const ValidationError*>(
      &from));
}

void ValidationError::MergeFrom(const ValidationError& from) {
  ValidationError* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.notification.v1.ValidationError)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_path().empty()) {
    _this->_internal_set_path(from._internal_path());
  }
  if (!from._internal_message().empty()) {
    _this->_internal_set_message(from._internal_message());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void ValidationError::CopyFrom(const ValidationError& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.notification.v1.ValidationError)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ValidationError::IsInitialized() const {
  return true;
}

void ValidationError::InternalSwap(ValidationError* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.path_, lhs_arena,
                                       &other->_impl_.path_, rhs_arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.message_, lhs_arena,
                                       &other->_impl_.message_, rhs_arena);
}

std::string ValidationError::GetTypeName() const {
  return "keyapis.notification.v1.ValidationError";
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace notification
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushToken_ValidationError_UserAppIdInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushToken_ValidationError*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushToken_ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushToken_ValidationError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushToken_SavingError_UserAppIdExists >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushToken_SavingError_Conflict*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushToken_SavingError_Conflict >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushToken_SavingError_Conflict >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushToken_SavingError*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushToken_SavingError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushToken_SavingError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushToken*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushToken >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushToken >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushTokenFilter_ValidationError_UserAppIdsInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushTokenFilter_ValidationError*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushTokenFilter_ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushTokenFilter_ValidationError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushTokenFilter*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushTokenFilter >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushTokenFilter >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushTokenPaging_ValidationError_LimitInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushTokenPaging_ValidationError_OffsetInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushTokenPaging_ValidationError*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushTokenPaging_ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushTokenPaging_ValidationError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PushTokenPaging*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PushTokenPaging >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PushTokenPaging >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PostPushTokenRequest*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PostPushTokenRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PostPushTokenRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PostPushTokenResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PostPushTokenResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PostPushTokenResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::PostPushTokenResponse*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::PostPushTokenResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::PostPushTokenResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::GetPushTokenListRequest*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::GetPushTokenListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::GetPushTokenListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::GetPushTokenCountRequest*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::GetPushTokenCountRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::GetPushTokenCountRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::GetPushTokenCountResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::GetPushTokenCountResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::GetPushTokenCountResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::GetPushTokenCountResponse*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::GetPushTokenCountResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::GetPushTokenCountResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::GetPushTokenListResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::GetPushTokenListResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::GetPushTokenListResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::GetPushTokenListResponse*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::GetPushTokenListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::GetPushTokenListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenRequest*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenResponse*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenUserIdRequest*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenUserIdRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenUserIdRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenUserIdResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenUserIdResponse*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenUserIdResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenUserIdResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenUserAppIdRequest*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenUserAppIdRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenUserAppIdRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::DeletePushTokenUserAppIdResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::notification::v1::ValidationError*
Arena::CreateMaybeMessage< ::keyapis::notification::v1::ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::notification::v1::ValidationError >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
