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

#include "keyapis/subscription/v1/keyapis_subscription_privilege_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 subscription {
namespace v1 {
template <typename>
PROTOBUF_CONSTEXPR Privilege::Privilege(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.flat_number_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_.orpon_)*/ ::int64_t{0}

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegeDefaultTypeInternal _Privilege_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegeFilter_ValidationError_OrponsInvalid::PrivilegeFilter_ValidationError_OrponsInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PrivilegeFilter_ValidationError_OrponsInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrivilegeFilter_ValidationError_OrponsInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrivilegeFilter_ValidationError_OrponsInvalidDefaultTypeInternal() {}
  union {
    PrivilegeFilter_ValidationError_OrponsInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegeFilter_ValidationError_OrponsInvalidDefaultTypeInternal _PrivilegeFilter_ValidationError_OrponsInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegeFilter_ValidationError_FlatNumbersInvalid::PrivilegeFilter_ValidationError_FlatNumbersInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PrivilegeFilter_ValidationError_FlatNumbersInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrivilegeFilter_ValidationError_FlatNumbersInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrivilegeFilter_ValidationError_FlatNumbersInvalidDefaultTypeInternal() {}
  union {
    PrivilegeFilter_ValidationError_FlatNumbersInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegeFilter_ValidationError_FlatNumbersInvalidDefaultTypeInternal _PrivilegeFilter_ValidationError_FlatNumbersInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegeFilter_ValidationError::PrivilegeFilter_ValidationError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PrivilegeFilter_ValidationErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrivilegeFilter_ValidationErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrivilegeFilter_ValidationErrorDefaultTypeInternal() {}
  union {
    PrivilegeFilter_ValidationError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegeFilter_ValidationErrorDefaultTypeInternal _PrivilegeFilter_ValidationError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegeFilter::PrivilegeFilter(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.orpons_)*/ {}
  ,/* _impl_._orpons_cached_byte_size_ = */ { 0 }

  , /*decltype(_impl_.flat_numbers_)*/{}
  , /*decltype(_impl_.types_)*/ {}
  , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

  , /*decltype(_impl_.state_types_)*/ {}
  , /*decltype(_impl_._state_types_cached_byte_size_)*/ { 0 }

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegeFilterDefaultTypeInternal _PrivilegeFilter_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegePaging_ValidationError_LimitInvalid::PrivilegePaging_ValidationError_LimitInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PrivilegePaging_ValidationError_LimitInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrivilegePaging_ValidationError_LimitInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrivilegePaging_ValidationError_LimitInvalidDefaultTypeInternal() {}
  union {
    PrivilegePaging_ValidationError_LimitInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegePaging_ValidationError_LimitInvalidDefaultTypeInternal _PrivilegePaging_ValidationError_LimitInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegePaging_ValidationError_OffsetInvalid::PrivilegePaging_ValidationError_OffsetInvalid(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct PrivilegePaging_ValidationError_OffsetInvalidDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrivilegePaging_ValidationError_OffsetInvalidDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrivilegePaging_ValidationError_OffsetInvalidDefaultTypeInternal() {}
  union {
    PrivilegePaging_ValidationError_OffsetInvalid _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegePaging_ValidationError_OffsetInvalidDefaultTypeInternal _PrivilegePaging_ValidationError_OffsetInvalid_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegePaging_ValidationError::PrivilegePaging_ValidationError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PrivilegePaging_ValidationErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrivilegePaging_ValidationErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrivilegePaging_ValidationErrorDefaultTypeInternal() {}
  union {
    PrivilegePaging_ValidationError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrivilegePaging_ValidationErrorDefaultTypeInternal _PrivilegePaging_ValidationError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PrivilegePaging::PrivilegePaging(
    ::_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 PrivilegePagingDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrivilegePagingDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrivilegePagingDefaultTypeInternal() {}
  union {
    PrivilegePaging _instance;
  };
};

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeListRequestDefaultTypeInternal _GetPrivilegeListRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPrivilegeListResponse_Error::GetPrivilegeListResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPrivilegeListResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPrivilegeListResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPrivilegeListResponse_ErrorDefaultTypeInternal() {}
  union {
    GetPrivilegeListResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeListResponse_ErrorDefaultTypeInternal _GetPrivilegeListResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPrivilegeListResponse::GetPrivilegeListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPrivilegeListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPrivilegeListResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPrivilegeListResponseDefaultTypeInternal() {}
  union {
    GetPrivilegeListResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeListResponseDefaultTypeInternal _GetPrivilegeListResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPrivilegeCountRequest::GetPrivilegeCountRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.filter_)*/nullptr} {}
struct GetPrivilegeCountRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPrivilegeCountRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPrivilegeCountRequestDefaultTypeInternal() {}
  union {
    GetPrivilegeCountRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeCountRequestDefaultTypeInternal _GetPrivilegeCountRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPrivilegeCountResponse_Error::GetPrivilegeCountResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPrivilegeCountResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPrivilegeCountResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPrivilegeCountResponse_ErrorDefaultTypeInternal() {}
  union {
    GetPrivilegeCountResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeCountResponse_ErrorDefaultTypeInternal _GetPrivilegeCountResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPrivilegeCountResponse::GetPrivilegeCountResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPrivilegeCountResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPrivilegeCountResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPrivilegeCountResponseDefaultTypeInternal() {}
  union {
    GetPrivilegeCountResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeCountResponseDefaultTypeInternal _GetPrivilegeCountResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPrivilegeCheckRequest::GetPrivilegeCheckRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.flat_number_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_.orpon_)*/ ::int64_t{0}

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeCheckRequestDefaultTypeInternal _GetPrivilegeCheckRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetPrivilegeCheckResponse::GetPrivilegeCheckResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetPrivilegeCheckResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetPrivilegeCheckResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetPrivilegeCheckResponseDefaultTypeInternal() {}
  union {
    GetPrivilegeCheckResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetPrivilegeCheckResponseDefaultTypeInternal _GetPrivilegeCheckResponse_default_instance_;
}  // namespace v1
}  // namespace subscription
}  // namespace keyapis
namespace keyapis {
namespace subscription {
namespace v1 {
bool Privilege_Type_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
      return true;
    default:
      return false;
  }
}
static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string>
    Privilege_Type_strings[23] = {};

static const char Privilege_Type_names[] = {
    "BARRIER_CAMERA_ARCHIVE"
    "BARRIER_CAMERA_USE"
    "BARRIER_CODE_USE"
    "BARRIER_EVENT_USE"
    "BARRIER_OPEN"
    "BARRIER_USE"
    "CAMERA_ARCHIVE"
    "CAMERA_EVENT_USE"
    "CAMERA_USE"
    "FR_USE"
    "INTERCOM_CALLREDIRECT_APP"
    "INTERCOM_CALLREDIRECT_PSTN"
    "INTERCOM_CALLREDIRECT_SIP"
    "INTERCOM_CAMERA_ARCHIVE"
    "INTERCOM_CAMERA_USE"
    "INTERCOM_CMS_PHONES_USE"
    "INTERCOM_CODE_USE"
    "INTERCOM_EVENT_USE"
    "INTERCOM_OPEN"
    "INTERCOM_RFID_USE"
    "INTERCOM_USE"
    "TELEMETRY_USE"
    "TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry Privilege_Type_entries[] =
    {
        {{&Privilege_Type_names[0], 22}, 16},
        {{&Privilege_Type_names[22], 18}, 15},
        {{&Privilege_Type_names[40], 16}, 13},
        {{&Privilege_Type_names[56], 17}, 14},
        {{&Privilege_Type_names[73], 12}, 12},
        {{&Privilege_Type_names[85], 11}, 11},
        {{&Privilege_Type_names[96], 14}, 20},
        {{&Privilege_Type_names[110], 16}, 22},
        {{&Privilege_Type_names[126], 10}, 19},
        {{&Privilege_Type_names[136], 6}, 17},
        {{&Privilege_Type_names[142], 25}, 8},
        {{&Privilege_Type_names[167], 26}, 9},
        {{&Privilege_Type_names[193], 25}, 10},
        {{&Privilege_Type_names[218], 23}, 7},
        {{&Privilege_Type_names[241], 19}, 6},
        {{&Privilege_Type_names[260], 23}, 21},
        {{&Privilege_Type_names[283], 17}, 3},
        {{&Privilege_Type_names[300], 18}, 5},
        {{&Privilege_Type_names[318], 13}, 2},
        {{&Privilege_Type_names[331], 17}, 4},
        {{&Privilege_Type_names[348], 12}, 1},
        {{&Privilege_Type_names[360], 13}, 18},
        {{&Privilege_Type_names[373], 12}, 0},
};

static const int Privilege_Type_entries_by_number[] = {
    22,  // 0 -> TYPE_UNKNOWN
    20,  // 1 -> INTERCOM_USE
    18,  // 2 -> INTERCOM_OPEN
    16,  // 3 -> INTERCOM_CODE_USE
    19,  // 4 -> INTERCOM_RFID_USE
    17,  // 5 -> INTERCOM_EVENT_USE
    14,  // 6 -> INTERCOM_CAMERA_USE
    13,  // 7 -> INTERCOM_CAMERA_ARCHIVE
    10,  // 8 -> INTERCOM_CALLREDIRECT_APP
    11,  // 9 -> INTERCOM_CALLREDIRECT_PSTN
    12,  // 10 -> INTERCOM_CALLREDIRECT_SIP
    5,  // 11 -> BARRIER_USE
    4,  // 12 -> BARRIER_OPEN
    2,  // 13 -> BARRIER_CODE_USE
    3,  // 14 -> BARRIER_EVENT_USE
    1,  // 15 -> BARRIER_CAMERA_USE
    0,  // 16 -> BARRIER_CAMERA_ARCHIVE
    9,  // 17 -> FR_USE
    21,  // 18 -> TELEMETRY_USE
    8,  // 19 -> CAMERA_USE
    6,  // 20 -> CAMERA_ARCHIVE
    15,  // 21 -> INTERCOM_CMS_PHONES_USE
    7,  // 22 -> CAMERA_EVENT_USE
};

const std::string& Privilege_Type_Name(Privilege_Type value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Privilege_Type_entries, Privilege_Type_entries_by_number,
          23, Privilege_Type_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Privilege_Type_entries, Privilege_Type_entries_by_number, 23,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Privilege_Type_strings[idx].get();
}

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

constexpr Privilege_Type Privilege::TYPE_UNKNOWN;
constexpr Privilege_Type Privilege::INTERCOM_USE;
constexpr Privilege_Type Privilege::INTERCOM_OPEN;
constexpr Privilege_Type Privilege::INTERCOM_CODE_USE;
constexpr Privilege_Type Privilege::INTERCOM_RFID_USE;
constexpr Privilege_Type Privilege::INTERCOM_EVENT_USE;
constexpr Privilege_Type Privilege::INTERCOM_CAMERA_USE;
constexpr Privilege_Type Privilege::INTERCOM_CAMERA_ARCHIVE;
constexpr Privilege_Type Privilege::INTERCOM_CALLREDIRECT_APP;
constexpr Privilege_Type Privilege::INTERCOM_CALLREDIRECT_PSTN;
constexpr Privilege_Type Privilege::INTERCOM_CALLREDIRECT_SIP;
constexpr Privilege_Type Privilege::BARRIER_USE;
constexpr Privilege_Type Privilege::BARRIER_OPEN;
constexpr Privilege_Type Privilege::BARRIER_CODE_USE;
constexpr Privilege_Type Privilege::BARRIER_EVENT_USE;
constexpr Privilege_Type Privilege::BARRIER_CAMERA_USE;
constexpr Privilege_Type Privilege::BARRIER_CAMERA_ARCHIVE;
constexpr Privilege_Type Privilege::FR_USE;
constexpr Privilege_Type Privilege::TELEMETRY_USE;
constexpr Privilege_Type Privilege::CAMERA_USE;
constexpr Privilege_Type Privilege::CAMERA_ARCHIVE;
constexpr Privilege_Type Privilege::INTERCOM_CMS_PHONES_USE;
constexpr Privilege_Type Privilege::CAMERA_EVENT_USE;
constexpr Privilege_Type Privilege::Type_MIN;
constexpr Privilege_Type Privilege::Type_MAX;
constexpr int Privilege::Type_ARRAYSIZE;

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

static const char Privilege_StateType_names[] = {
    "CAN_BE_PAID"
    "NOT_PAID"
    "PAID"
    "PROMO"
    "STATE_TYPE_UNKNOWN"
    "TURNS_OFF"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry Privilege_StateType_entries[] =
    {
        {{&Privilege_StateType_names[0], 11}, 1},
        {{&Privilege_StateType_names[11], 8}, 2},
        {{&Privilege_StateType_names[19], 4}, 5},
        {{&Privilege_StateType_names[23], 5}, 4},
        {{&Privilege_StateType_names[28], 18}, 0},
        {{&Privilege_StateType_names[46], 9}, 3},
};

static const int Privilege_StateType_entries_by_number[] = {
    4,  // 0 -> STATE_TYPE_UNKNOWN
    0,  // 1 -> CAN_BE_PAID
    1,  // 2 -> NOT_PAID
    5,  // 3 -> TURNS_OFF
    3,  // 4 -> PROMO
    2,  // 5 -> PAID
};

const std::string& Privilege_StateType_Name(Privilege_StateType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Privilege_StateType_entries, Privilege_StateType_entries_by_number,
          6, Privilege_StateType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Privilege_StateType_entries, Privilege_StateType_entries_by_number, 6,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Privilege_StateType_strings[idx].get();
}

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

constexpr Privilege_StateType Privilege::STATE_TYPE_UNKNOWN;
constexpr Privilege_StateType Privilege::CAN_BE_PAID;
constexpr Privilege_StateType Privilege::NOT_PAID;
constexpr Privilege_StateType Privilege::TURNS_OFF;
constexpr Privilege_StateType Privilege::PROMO;
constexpr Privilege_StateType Privilege::PAID;
constexpr Privilege_StateType Privilege::StateType_MIN;
constexpr Privilege_StateType Privilege::StateType_MAX;
constexpr int Privilege::StateType_ARRAYSIZE;

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

static const char PrivilegePaging_OrderByType_names[] = {
    "KEY"
    "ORDER_BY_TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry PrivilegePaging_OrderByType_entries[] =
    {
        {{&PrivilegePaging_OrderByType_names[0], 3}, 1},
        {{&PrivilegePaging_OrderByType_names[3], 21}, 0},
};

static const int PrivilegePaging_OrderByType_entries_by_number[] = {
    1,  // 0 -> ORDER_BY_TYPE_UNKNOWN
    0,  // 1 -> KEY
};

const std::string& PrivilegePaging_OrderByType_Name(PrivilegePaging_OrderByType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          PrivilegePaging_OrderByType_entries, PrivilegePaging_OrderByType_entries_by_number,
          2, PrivilegePaging_OrderByType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      PrivilegePaging_OrderByType_entries, PrivilegePaging_OrderByType_entries_by_number, 2,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : PrivilegePaging_OrderByType_strings[idx].get();
}

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

constexpr PrivilegePaging_OrderByType PrivilegePaging::ORDER_BY_TYPE_UNKNOWN;
constexpr PrivilegePaging_OrderByType PrivilegePaging::KEY;
constexpr PrivilegePaging_OrderByType PrivilegePaging::OrderByType_MIN;
constexpr PrivilegePaging_OrderByType PrivilegePaging::OrderByType_MAX;
constexpr int PrivilegePaging::OrderByType_ARRAYSIZE;

#endif  // (__cplusplus < 201703) &&
        // (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
bool PrivilegePaging_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>
    PrivilegePaging_DirectionType_strings[3] = {};

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

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

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

const std::string& PrivilegePaging_DirectionType_Name(PrivilegePaging_DirectionType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          PrivilegePaging_DirectionType_entries, PrivilegePaging_DirectionType_entries_by_number,
          3, PrivilegePaging_DirectionType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      PrivilegePaging_DirectionType_entries, PrivilegePaging_DirectionType_entries_by_number, 3,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : PrivilegePaging_DirectionType_strings[idx].get();
}

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

constexpr PrivilegePaging_DirectionType PrivilegePaging::DIRECTION_TYPE_UNKNOWN;
constexpr PrivilegePaging_DirectionType PrivilegePaging::DESC;
constexpr PrivilegePaging_DirectionType PrivilegePaging::ASC;
constexpr PrivilegePaging_DirectionType PrivilegePaging::DirectionType_MIN;
constexpr PrivilegePaging_DirectionType PrivilegePaging::DirectionType_MAX;
constexpr int PrivilegePaging::DirectionType_ARRAYSIZE;

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

class Privilege::_Internal {
 public:
};

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

    , decltype(_impl_.orpon_) {}

    , decltype(_impl_.type_) {}

    , decltype(_impl_.state_type_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.flat_number_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.flat_number_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_flat_number().empty()) {
    _this->_impl_.flat_number_.Set(from._internal_flat_number(), _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.orpon_, &from._impl_.orpon_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.state_type_) -
    reinterpret_cast<char*>(&_impl_.orpon_)) + sizeof(_impl_.state_type_));
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.Privilege)
}

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

    , decltype(_impl_.orpon_) { ::int64_t{0} }

    , decltype(_impl_.type_) { 0 }

    , decltype(_impl_.state_type_) { 0 }

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

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

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

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

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

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

const char* Privilege::_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) {
      // int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _impl_.orpon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // string flat_number = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_flat_number();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.subscription.v1.Privilege.Type type = 3 [(.google.api.field_behavior) = REQUIRED];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 24)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::subscription::v1::Privilege_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.subscription.v1.Privilege.StateType state_type = 4 [(.google.api.field_behavior) = REQUIRED];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 32)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_state_type(static_cast<::keyapis::subscription::v1::Privilege_StateType>(val));
        } 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* Privilege::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.Privilege)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_orpon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        1, this->_internal_orpon(), target);
  }

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

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

  // .keyapis.subscription.v1.Privilege.StateType state_type = 4 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_state_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        4, this->_internal_state_type(), 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.subscription.v1.Privilege)
  return target;
}

::size_t Privilege::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.Privilege)
  ::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 flat_number = 2 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_flat_number().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_flat_number());
  }

  // int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_orpon() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
        this->_internal_orpon());
  }

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

  // .keyapis.subscription.v1.Privilege.StateType state_type = 4 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_state_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_state_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 Privilege::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const Privilege*>(
      &from));
}

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

  if (!from._internal_flat_number().empty()) {
    _this->_internal_set_flat_number(from._internal_flat_number());
  }
  if (from._internal_orpon() != 0) {
    _this->_internal_set_orpon(from._internal_orpon());
  }
  if (from._internal_type() != 0) {
    _this->_internal_set_type(from._internal_type());
  }
  if (from._internal_state_type() != 0) {
    _this->_internal_set_state_type(from._internal_state_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void Privilege::InternalSwap(Privilege* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.flat_number_, lhs_arena,
                                       &other->_impl_.flat_number_, rhs_arena);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Privilege, _impl_.state_type_)
      + sizeof(Privilege::_impl_.state_type_)
      - PROTOBUF_FIELD_OFFSET(Privilege, _impl_.orpon_)>(
          reinterpret_cast<char*>(&_impl_.orpon_),
          reinterpret_cast<char*>(&other->_impl_.orpon_));
}

std::string Privilege::GetTypeName() const {
  return "keyapis.subscription.v1.Privilege";
}

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

class PrivilegeFilter_ValidationError_OrponsInvalid::_Internal {
 public:
};

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

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

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

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

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

void PrivilegeFilter_ValidationError_OrponsInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid)
  ::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* PrivilegeFilter_ValidationError_OrponsInvalid::_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* PrivilegeFilter_ValidationError_OrponsInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid)
  ::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.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid)
  return target;
}

::size_t PrivilegeFilter_ValidationError_OrponsInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid)
  ::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 PrivilegeFilter_ValidationError_OrponsInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegeFilter_ValidationError_OrponsInvalid*>(
      &from));
}

void PrivilegeFilter_ValidationError_OrponsInvalid::MergeFrom(const PrivilegeFilter_ValidationError_OrponsInvalid& from) {
  PrivilegeFilter_ValidationError_OrponsInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid)
  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 PrivilegeFilter_ValidationError_OrponsInvalid::CopyFrom(const PrivilegeFilter_ValidationError_OrponsInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

std::string PrivilegeFilter_ValidationError_OrponsInvalid::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid";
}

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

class PrivilegeFilter_ValidationError_FlatNumbersInvalid::_Internal {
 public:
};

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

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

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

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

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

void PrivilegeFilter_ValidationError_FlatNumbersInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid)
  ::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* PrivilegeFilter_ValidationError_FlatNumbersInvalid::_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* PrivilegeFilter_ValidationError_FlatNumbersInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid)
  ::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.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid)
  return target;
}

::size_t PrivilegeFilter_ValidationError_FlatNumbersInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid)
  ::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 PrivilegeFilter_ValidationError_FlatNumbersInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegeFilter_ValidationError_FlatNumbersInvalid*>(
      &from));
}

void PrivilegeFilter_ValidationError_FlatNumbersInvalid::MergeFrom(const PrivilegeFilter_ValidationError_FlatNumbersInvalid& from) {
  PrivilegeFilter_ValidationError_FlatNumbersInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid)
  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 PrivilegeFilter_ValidationError_FlatNumbersInvalid::CopyFrom(const PrivilegeFilter_ValidationError_FlatNumbersInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

std::string PrivilegeFilter_ValidationError_FlatNumbersInvalid::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid";
}

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

class PrivilegeFilter_ValidationError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::subscription::v1::PrivilegeFilter_ValidationError, _impl_._oneof_case_);
  static const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid& orpons(const PrivilegeFilter_ValidationError* msg);
  static const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid& flat_numbers(const PrivilegeFilter_ValidationError* msg);
};

const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid&
PrivilegeFilter_ValidationError::_Internal::orpons(const PrivilegeFilter_ValidationError* msg) {
  return *msg->_impl_.reason_.orpons_;
}
const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid&
PrivilegeFilter_ValidationError::_Internal::flat_numbers(const PrivilegeFilter_ValidationError* msg) {
  return *msg->_impl_.reason_.flat_numbers_;
}
void PrivilegeFilter_ValidationError::set_allocated_orpons(::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid* orpons) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (orpons) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(orpons);
    if (message_arena != submessage_arena) {
      orpons = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, orpons, submessage_arena);
    }
    set_has_orpons();
    _impl_.reason_.orpons_ = orpons;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.subscription.v1.PrivilegeFilter.ValidationError.orpons)
}
void PrivilegeFilter_ValidationError::set_allocated_flat_numbers(::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid* flat_numbers) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (flat_numbers) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(flat_numbers);
    if (message_arena != submessage_arena) {
      flat_numbers = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, flat_numbers, submessage_arena);
    }
    set_has_flat_numbers();
    _impl_.reason_.flat_numbers_ = flat_numbers;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.subscription.v1.PrivilegeFilter.ValidationError.flat_numbers)
}
PrivilegeFilter_ValidationError::PrivilegeFilter_ValidationError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.PrivilegeFilter.ValidationError)
}
PrivilegeFilter_ValidationError::PrivilegeFilter_ValidationError(const PrivilegeFilter_ValidationError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PrivilegeFilter_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 kOrpons: {
      _this->_internal_mutable_orpons()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid::MergeFrom(
          from._internal_orpons());
      break;
    }
    case kFlatNumbers: {
      _this->_internal_mutable_flat_numbers()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid::MergeFrom(
          from._internal_flat_numbers());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.PrivilegeFilter.ValidationError)
}

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

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

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

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

void PrivilegeFilter_ValidationError::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError)
  switch (reason_case()) {
    case kOrpons: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.orpons_;
      }
      break;
    }
    case kFlatNumbers: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.flat_numbers_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void PrivilegeFilter_ValidationError::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.PrivilegeFilter.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* PrivilegeFilter_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.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid orpons = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_orpons(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_flat_numbers(), 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* PrivilegeFilter_ValidationError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegeFilter.ValidationError)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kOrpons: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::orpons(this),
          _Internal::orpons(this).GetCachedSize(), target, stream);
      break;
    }
    case kFlatNumbers: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::flat_numbers(this),
          _Internal::flat_numbers(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.subscription.v1.PrivilegeFilter.ValidationError)
  return target;
}

::size_t PrivilegeFilter_ValidationError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegeFilter.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.subscription.v1.PrivilegeFilter.ValidationError.OrponsInvalid orpons = 1;
    case kOrpons: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.orpons_);
      break;
    }
    // .keyapis.subscription.v1.PrivilegeFilter.ValidationError.FlatNumbersInvalid flat_numbers = 2;
    case kFlatNumbers: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.flat_numbers_);
      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 PrivilegeFilter_ValidationError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegeFilter_ValidationError*>(
      &from));
}

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

  switch (from.reason_case()) {
    case kOrpons: {
      _this->_internal_mutable_orpons()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid::MergeFrom(
          from._internal_orpons());
      break;
    }
    case kFlatNumbers: {
      _this->_internal_mutable_flat_numbers()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid::MergeFrom(
          from._internal_flat_numbers());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void PrivilegeFilter_ValidationError::InternalSwap(PrivilegeFilter_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 PrivilegeFilter_ValidationError::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegeFilter.ValidationError";
}

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

class PrivilegeFilter::_Internal {
 public:
};

PrivilegeFilter::PrivilegeFilter(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.PrivilegeFilter)
}
PrivilegeFilter::PrivilegeFilter(const PrivilegeFilter& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PrivilegeFilter* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.orpons_) { from._impl_.orpons_ }
    ,/* _impl_._orpons_cached_byte_size_ = */ { 0 }

    , decltype(_impl_.flat_numbers_){from._impl_.flat_numbers_}
    , decltype(_impl_.types_) { from._internal_types() }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.state_types_) { from._internal_state_types() }
    , /*decltype(_impl_._state_types_cached_byte_size_)*/ { 0 }

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.PrivilegeFilter)
}

inline void PrivilegeFilter::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.orpons_) { arena }
    ,/* _impl_._orpons_cached_byte_size_ = */ { 0 }

    , decltype(_impl_.flat_numbers_){arena}
    , decltype(_impl_.types_) { arena }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.state_types_) { arena }
    , /*decltype(_impl_._state_types_cached_byte_size_)*/ { 0 }

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

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

inline void PrivilegeFilter::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.orpons_.~RepeatedField();
  _internal_mutable_flat_numbers()->~RepeatedPtrField();
  _internal_mutable_types()->~RepeatedField();
  _internal_mutable_state_types()->~RepeatedField();
}

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

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

  _internal_mutable_orpons()->Clear();
  _internal_mutable_flat_numbers()->Clear();
  _internal_mutable_types()->Clear();
  _internal_mutable_state_types()->Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* PrivilegeFilter::_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) {
      // repeated int64 orpons = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_orpons(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 8) {
          _internal_add_orpons(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string flat_numbers = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_flat_numbers();
            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 .keyapis.subscription.v1.Privilege.Type types = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 24) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_types(static_cast<::keyapis::subscription::v1::Privilege_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.subscription.v1.Privilege.StateType state_types = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_state_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 32) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_state_types(static_cast<::keyapis::subscription::v1::Privilege_StateType>(val));
        } 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* PrivilegeFilter::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegeFilter)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int64 orpons = 1;
  {
    int byte_size = _impl_._orpons_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteInt64Packed(1, _internal_orpons(),
                                                 byte_size, target);
    }
  }

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

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

  // repeated .keyapis.subscription.v1.Privilege.StateType state_types = 4;
  {
    int byte_size = _impl_._state_types_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(4, _internal_state_types(),
                                       byte_size, 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.subscription.v1.PrivilegeFilter)
  return target;
}

::size_t PrivilegeFilter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegeFilter)
  ::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 int64 orpons = 1;
  {
    std::size_t data_size = ::_pbi::WireFormatLite::Int64Size(
        this->_internal_orpons())
    ;
    _impl_._orpons_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;
  }

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

  // repeated .keyapis.subscription.v1.Privilege.Type types = 3;
  {
    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 .keyapis.subscription.v1.Privilege.StateType state_types = 4;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_state_types_size());

    for (std::size_t i = 0; i < count; ++i) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
          this->_internal_state_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_._state_types_cached_byte_size_.Set(::_pbi::ToCachedSize(data_size));
  }

  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 PrivilegeFilter::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegeFilter*>(
      &from));
}

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

  _this->_impl_.orpons_.MergeFrom(from._impl_.orpons_);
  _this->_internal_mutable_flat_numbers()->MergeFrom(from._internal_flat_numbers());
  _this->_internal_mutable_types()->MergeFrom(from._internal_types());
  _this->_internal_mutable_state_types()->MergeFrom(from._internal_state_types());
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void PrivilegeFilter::InternalSwap(PrivilegeFilter* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.orpons_.InternalSwap(&other->_impl_.orpons_);
  _internal_mutable_flat_numbers()->InternalSwap(
      other->_internal_mutable_flat_numbers());
  _internal_mutable_types()->InternalSwap(
      other->_internal_mutable_types());
  _internal_mutable_state_types()->InternalSwap(
      other->_internal_mutable_state_types());
}

std::string PrivilegeFilter::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegeFilter";
}

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

class PrivilegePaging_ValidationError_LimitInvalid::_Internal {
 public:
};

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

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

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

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

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

void PrivilegePaging_ValidationError_LimitInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.PrivilegePaging.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* PrivilegePaging_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* PrivilegePaging_ValidationError_LimitInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegePaging.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.subscription.v1.PrivilegePaging.ValidationError.LimitInvalid)
  return target;
}

::size_t PrivilegePaging_ValidationError_LimitInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegePaging.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 PrivilegePaging_ValidationError_LimitInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegePaging_ValidationError_LimitInvalid*>(
      &from));
}

void PrivilegePaging_ValidationError_LimitInvalid::MergeFrom(const PrivilegePaging_ValidationError_LimitInvalid& from) {
  PrivilegePaging_ValidationError_LimitInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.PrivilegePaging.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 PrivilegePaging_ValidationError_LimitInvalid::CopyFrom(const PrivilegePaging_ValidationError_LimitInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.subscription.v1.PrivilegePaging.ValidationError.LimitInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

std::string PrivilegePaging_ValidationError_LimitInvalid::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegePaging.ValidationError.LimitInvalid";
}

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

class PrivilegePaging_ValidationError_OffsetInvalid::_Internal {
 public:
};

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

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

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

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

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

void PrivilegePaging_ValidationError_OffsetInvalid::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.PrivilegePaging.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* PrivilegePaging_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* PrivilegePaging_ValidationError_OffsetInvalid::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegePaging.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.subscription.v1.PrivilegePaging.ValidationError.OffsetInvalid)
  return target;
}

::size_t PrivilegePaging_ValidationError_OffsetInvalid::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegePaging.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 PrivilegePaging_ValidationError_OffsetInvalid::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegePaging_ValidationError_OffsetInvalid*>(
      &from));
}

void PrivilegePaging_ValidationError_OffsetInvalid::MergeFrom(const PrivilegePaging_ValidationError_OffsetInvalid& from) {
  PrivilegePaging_ValidationError_OffsetInvalid* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.PrivilegePaging.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 PrivilegePaging_ValidationError_OffsetInvalid::CopyFrom(const PrivilegePaging_ValidationError_OffsetInvalid& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.subscription.v1.PrivilegePaging.ValidationError.OffsetInvalid)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

std::string PrivilegePaging_ValidationError_OffsetInvalid::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegePaging.ValidationError.OffsetInvalid";
}

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

class PrivilegePaging_ValidationError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::subscription::v1::PrivilegePaging_ValidationError, _impl_._oneof_case_);
  static const ::keyapis::subscription::v1::PrivilegePaging_ValidationError_LimitInvalid& limit(const PrivilegePaging_ValidationError* msg);
  static const ::keyapis::subscription::v1::PrivilegePaging_ValidationError_OffsetInvalid& offset(const PrivilegePaging_ValidationError* msg);
};

const ::keyapis::subscription::v1::PrivilegePaging_ValidationError_LimitInvalid&
PrivilegePaging_ValidationError::_Internal::limit(const PrivilegePaging_ValidationError* msg) {
  return *msg->_impl_.reason_.limit_;
}
const ::keyapis::subscription::v1::PrivilegePaging_ValidationError_OffsetInvalid&
PrivilegePaging_ValidationError::_Internal::offset(const PrivilegePaging_ValidationError* msg) {
  return *msg->_impl_.reason_.offset_;
}
void PrivilegePaging_ValidationError::set_allocated_limit(::keyapis::subscription::v1::PrivilegePaging_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.subscription.v1.PrivilegePaging.ValidationError.limit)
}
void PrivilegePaging_ValidationError::set_allocated_offset(::keyapis::subscription::v1::PrivilegePaging_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.subscription.v1.PrivilegePaging.ValidationError.offset)
}
PrivilegePaging_ValidationError::PrivilegePaging_ValidationError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.PrivilegePaging.ValidationError)
}
PrivilegePaging_ValidationError::PrivilegePaging_ValidationError(const PrivilegePaging_ValidationError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PrivilegePaging_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::subscription::v1::PrivilegePaging_ValidationError_LimitInvalid::MergeFrom(
          from._internal_limit());
      break;
    }
    case kOffset: {
      _this->_internal_mutable_offset()->::keyapis::subscription::v1::PrivilegePaging_ValidationError_OffsetInvalid::MergeFrom(
          from._internal_offset());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.PrivilegePaging.ValidationError)
}

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

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

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

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

void PrivilegePaging_ValidationError::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.PrivilegePaging.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 PrivilegePaging_ValidationError::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.PrivilegePaging.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* PrivilegePaging_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.subscription.v1.PrivilegePaging.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.subscription.v1.PrivilegePaging.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* PrivilegePaging_ValidationError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegePaging.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.subscription.v1.PrivilegePaging.ValidationError)
  return target;
}

::size_t PrivilegePaging_ValidationError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegePaging.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.subscription.v1.PrivilegePaging.ValidationError.LimitInvalid limit = 1;
    case kLimit: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.limit_);
      break;
    }
    // .keyapis.subscription.v1.PrivilegePaging.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 PrivilegePaging_ValidationError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegePaging_ValidationError*>(
      &from));
}

void PrivilegePaging_ValidationError::MergeFrom(const PrivilegePaging_ValidationError& from) {
  PrivilegePaging_ValidationError* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.PrivilegePaging.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::subscription::v1::PrivilegePaging_ValidationError_LimitInvalid::MergeFrom(
          from._internal_limit());
      break;
    }
    case kOffset: {
      _this->_internal_mutable_offset()->::keyapis::subscription::v1::PrivilegePaging_ValidationError_OffsetInvalid::MergeFrom(
          from._internal_offset());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void PrivilegePaging_ValidationError::InternalSwap(PrivilegePaging_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 PrivilegePaging_ValidationError::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegePaging.ValidationError";
}

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

class PrivilegePaging::_Internal {
 public:
};

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

inline void PrivilegePaging::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_)*/{}
  };
}

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

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

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

void PrivilegePaging::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.PrivilegePaging)
  ::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* PrivilegePaging::_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.subscription.v1.PrivilegePaging.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::subscription::v1::PrivilegePaging_OrderByType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.subscription.v1.PrivilegePaging.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::subscription::v1::PrivilegePaging_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* PrivilegePaging::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.PrivilegePaging)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.subscription.v1.PrivilegePaging.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.subscription.v1.PrivilegePaging.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.subscription.v1.PrivilegePaging)
  return target;
}

::size_t PrivilegePaging::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.PrivilegePaging)
  ::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.subscription.v1.PrivilegePaging.OrderByType order_by_type = 1;
  if (this->_internal_order_by_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_order_by_type());
  }

  // .keyapis.subscription.v1.PrivilegePaging.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 PrivilegePaging::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PrivilegePaging*>(
      &from));
}

void PrivilegePaging::MergeFrom(const PrivilegePaging& from) {
  PrivilegePaging* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.PrivilegePaging)
  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 PrivilegePaging::CopyFrom(const PrivilegePaging& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.subscription.v1.PrivilegePaging)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

std::string PrivilegePaging::GetTypeName() const {
  return "keyapis.subscription.v1.PrivilegePaging";
}

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

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

const ::keyapis::subscription::v1::PrivilegeFilter&
GetPrivilegeListRequest::_Internal::filter(const GetPrivilegeListRequest* msg) {
  return *msg->_impl_.filter_;
}
const ::keyapis::subscription::v1::PrivilegePaging&
GetPrivilegeListRequest::_Internal::paging(const GetPrivilegeListRequest* msg) {
  return *msg->_impl_.pagination_.paging_;
}
void GetPrivilegeListRequest::set_allocated_paging(::keyapis::subscription::v1::PrivilegePaging* 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.subscription.v1.GetPrivilegeListRequest.paging)
}
GetPrivilegeListRequest::GetPrivilegeListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.GetPrivilegeListRequest)
}
GetPrivilegeListRequest::GetPrivilegeListRequest(const GetPrivilegeListRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPrivilegeListRequest* 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::subscription::v1::PrivilegeFilter(*from._impl_.filter_);
  }
  clear_has_pagination();
  switch (from.pagination_case()) {
    case kPaging: {
      _this->_internal_mutable_paging()->::keyapis::subscription::v1::PrivilegePaging::MergeFrom(
          from._internal_paging());
      break;
    }
    case PAGINATION_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeListRequest)
}

inline void GetPrivilegeListRequest::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();
}

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

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

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

void GetPrivilegeListRequest::clear_pagination() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.GetPrivilegeListRequest)
  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 GetPrivilegeListRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.GetPrivilegeListRequest)
  ::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* GetPrivilegeListRequest::_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.subscription.v1.PrivilegeFilter 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.subscription.v1.PrivilegePaging 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* GetPrivilegeListRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeListRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.subscription.v1.PrivilegeFilter 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.subscription.v1.PrivilegePaging 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.subscription.v1.GetPrivilegeListRequest)
  return target;
}

::size_t GetPrivilegeListRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeListRequest)
  ::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.subscription.v1.PrivilegeFilter 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.subscription.v1.PrivilegePaging 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 GetPrivilegeListRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeListRequest*>(
      &from));
}

void GetPrivilegeListRequest::MergeFrom(const GetPrivilegeListRequest& from) {
  GetPrivilegeListRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.GetPrivilegeListRequest)
  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::subscription::v1::PrivilegeFilter::MergeFrom(
        from._internal_filter());
  }
  switch (from.pagination_case()) {
    case kPaging: {
      _this->_internal_mutable_paging()->::keyapis::subscription::v1::PrivilegePaging::MergeFrom(
          from._internal_paging());
      break;
    }
    case PAGINATION_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeListRequest::InternalSwap(GetPrivilegeListRequest* 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 GetPrivilegeListRequest::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeListRequest";
}

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

class GetPrivilegeListResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::subscription::v1::GetPrivilegeListResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError& privilege_filter_validation(const GetPrivilegeListResponse_Error* msg);
  static const ::keyapis::subscription::v1::PrivilegePaging_ValidationError& privilege_paging_validation(const GetPrivilegeListResponse_Error* msg);
};

const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError&
GetPrivilegeListResponse_Error::_Internal::privilege_filter_validation(const GetPrivilegeListResponse_Error* msg) {
  return *msg->_impl_.reason_.privilege_filter_validation_;
}
const ::keyapis::subscription::v1::PrivilegePaging_ValidationError&
GetPrivilegeListResponse_Error::_Internal::privilege_paging_validation(const GetPrivilegeListResponse_Error* msg) {
  return *msg->_impl_.reason_.privilege_paging_validation_;
}
void GetPrivilegeListResponse_Error::set_allocated_privilege_filter_validation(::keyapis::subscription::v1::PrivilegeFilter_ValidationError* privilege_filter_validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (privilege_filter_validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(privilege_filter_validation);
    if (message_arena != submessage_arena) {
      privilege_filter_validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, privilege_filter_validation, submessage_arena);
    }
    set_has_privilege_filter_validation();
    _impl_.reason_.privilege_filter_validation_ = privilege_filter_validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.subscription.v1.GetPrivilegeListResponse.Error.privilege_filter_validation)
}
void GetPrivilegeListResponse_Error::set_allocated_privilege_paging_validation(::keyapis::subscription::v1::PrivilegePaging_ValidationError* privilege_paging_validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (privilege_paging_validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(privilege_paging_validation);
    if (message_arena != submessage_arena) {
      privilege_paging_validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, privilege_paging_validation, submessage_arena);
    }
    set_has_privilege_paging_validation();
    _impl_.reason_.privilege_paging_validation_ = privilege_paging_validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.subscription.v1.GetPrivilegeListResponse.Error.privilege_paging_validation)
}
GetPrivilegeListResponse_Error::GetPrivilegeListResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.GetPrivilegeListResponse.Error)
}
GetPrivilegeListResponse_Error::GetPrivilegeListResponse_Error(const GetPrivilegeListResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPrivilegeListResponse_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 kPrivilegeFilterValidation: {
      _this->_internal_mutable_privilege_filter_validation()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError::MergeFrom(
          from._internal_privilege_filter_validation());
      break;
    }
    case kPrivilegePagingValidation: {
      _this->_internal_mutable_privilege_paging_validation()->::keyapis::subscription::v1::PrivilegePaging_ValidationError::MergeFrom(
          from._internal_privilege_paging_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeListResponse.Error)
}

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

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

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

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

void GetPrivilegeListResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.GetPrivilegeListResponse.Error)
  switch (reason_case()) {
    case kPrivilegeFilterValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.privilege_filter_validation_;
      }
      break;
    }
    case kPrivilegePagingValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.privilege_paging_validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void GetPrivilegeListResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.GetPrivilegeListResponse.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* GetPrivilegeListResponse_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.subscription.v1.PrivilegeFilter.ValidationError privilege_filter_validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_privilege_filter_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.subscription.v1.PrivilegePaging.ValidationError privilege_paging_validation = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_privilege_paging_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* GetPrivilegeListResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeListResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kPrivilegeFilterValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::privilege_filter_validation(this),
          _Internal::privilege_filter_validation(this).GetCachedSize(), target, stream);
      break;
    }
    case kPrivilegePagingValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::privilege_paging_validation(this),
          _Internal::privilege_paging_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.subscription.v1.GetPrivilegeListResponse.Error)
  return target;
}

::size_t GetPrivilegeListResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeListResponse.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.subscription.v1.PrivilegeFilter.ValidationError privilege_filter_validation = 1;
    case kPrivilegeFilterValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.privilege_filter_validation_);
      break;
    }
    // .keyapis.subscription.v1.PrivilegePaging.ValidationError privilege_paging_validation = 2;
    case kPrivilegePagingValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.privilege_paging_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 GetPrivilegeListResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeListResponse_Error*>(
      &from));
}

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

  switch (from.reason_case()) {
    case kPrivilegeFilterValidation: {
      _this->_internal_mutable_privilege_filter_validation()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError::MergeFrom(
          from._internal_privilege_filter_validation());
      break;
    }
    case kPrivilegePagingValidation: {
      _this->_internal_mutable_privilege_paging_validation()->::keyapis::subscription::v1::PrivilegePaging_ValidationError::MergeFrom(
          from._internal_privilege_paging_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeListResponse_Error::InternalSwap(GetPrivilegeListResponse_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 GetPrivilegeListResponse_Error::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeListResponse.Error";
}

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

class GetPrivilegeListResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::subscription::v1::GetPrivilegeListResponse, _impl_._oneof_case_);
  static const ::keyapis::subscription::v1::Privilege& data(const GetPrivilegeListResponse* msg);
  static const ::keyapis::subscription::v1::GetPrivilegeListResponse_Error& error(const GetPrivilegeListResponse* msg);
};

const ::keyapis::subscription::v1::Privilege&
GetPrivilegeListResponse::_Internal::data(const GetPrivilegeListResponse* msg) {
  return *msg->_impl_.type_.data_;
}
const ::keyapis::subscription::v1::GetPrivilegeListResponse_Error&
GetPrivilegeListResponse::_Internal::error(const GetPrivilegeListResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void GetPrivilegeListResponse::set_allocated_data(::keyapis::subscription::v1::Privilege* 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.subscription.v1.GetPrivilegeListResponse.data)
}
void GetPrivilegeListResponse::set_allocated_error(::keyapis::subscription::v1::GetPrivilegeListResponse_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.subscription.v1.GetPrivilegeListResponse.error)
}
GetPrivilegeListResponse::GetPrivilegeListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.GetPrivilegeListResponse)
}
GetPrivilegeListResponse::GetPrivilegeListResponse(const GetPrivilegeListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPrivilegeListResponse* 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::subscription::v1::Privilege::MergeFrom(
          from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::subscription::v1::GetPrivilegeListResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeListResponse)
}

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

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

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

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

void GetPrivilegeListResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.GetPrivilegeListResponse)
  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 GetPrivilegeListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.GetPrivilegeListResponse)
  ::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* GetPrivilegeListResponse::_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.subscription.v1.Privilege 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.subscription.v1.GetPrivilegeListResponse.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* GetPrivilegeListResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeListResponse)
  ::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.subscription.v1.GetPrivilegeListResponse)
  return target;
}

::size_t GetPrivilegeListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeListResponse)
  ::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.subscription.v1.Privilege data = 1;
    case kData: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.data_);
      break;
    }
    // .keyapis.subscription.v1.GetPrivilegeListResponse.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 GetPrivilegeListResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeListResponse*>(
      &from));
}

void GetPrivilegeListResponse::MergeFrom(const GetPrivilegeListResponse& from) {
  GetPrivilegeListResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.GetPrivilegeListResponse)
  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::subscription::v1::Privilege::MergeFrom(
          from._internal_data());
      break;
    }
    case kError: {
      _this->_internal_mutable_error()->::keyapis::subscription::v1::GetPrivilegeListResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeListResponse::InternalSwap(GetPrivilegeListResponse* 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 GetPrivilegeListResponse::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeListResponse";
}

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

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

const ::keyapis::subscription::v1::PrivilegeFilter&
GetPrivilegeCountRequest::_Internal::filter(const GetPrivilegeCountRequest* msg) {
  return *msg->_impl_.filter_;
}
GetPrivilegeCountRequest::GetPrivilegeCountRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.GetPrivilegeCountRequest)
}
GetPrivilegeCountRequest::GetPrivilegeCountRequest(const GetPrivilegeCountRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPrivilegeCountRequest* 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::subscription::v1::PrivilegeFilter(*from._impl_.filter_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeCountRequest)
}

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

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

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

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

void GetPrivilegeCountRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.GetPrivilegeCountRequest)
  ::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* GetPrivilegeCountRequest::_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.subscription.v1.PrivilegeFilter 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* GetPrivilegeCountRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeCountRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.subscription.v1.PrivilegeFilter 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.subscription.v1.GetPrivilegeCountRequest)
  return target;
}

::size_t GetPrivilegeCountRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeCountRequest)
  ::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.subscription.v1.PrivilegeFilter 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 GetPrivilegeCountRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeCountRequest*>(
      &from));
}

void GetPrivilegeCountRequest::MergeFrom(const GetPrivilegeCountRequest& from) {
  GetPrivilegeCountRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.GetPrivilegeCountRequest)
  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::subscription::v1::PrivilegeFilter::MergeFrom(
        from._internal_filter());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeCountRequest::InternalSwap(GetPrivilegeCountRequest* 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 GetPrivilegeCountRequest::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeCountRequest";
}

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

class GetPrivilegeCountResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::subscription::v1::GetPrivilegeCountResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError& privilege_filter_validation(const GetPrivilegeCountResponse_Error* msg);
};

const ::keyapis::subscription::v1::PrivilegeFilter_ValidationError&
GetPrivilegeCountResponse_Error::_Internal::privilege_filter_validation(const GetPrivilegeCountResponse_Error* msg) {
  return *msg->_impl_.reason_.privilege_filter_validation_;
}
void GetPrivilegeCountResponse_Error::set_allocated_privilege_filter_validation(::keyapis::subscription::v1::PrivilegeFilter_ValidationError* privilege_filter_validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (privilege_filter_validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(privilege_filter_validation);
    if (message_arena != submessage_arena) {
      privilege_filter_validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, privilege_filter_validation, submessage_arena);
    }
    set_has_privilege_filter_validation();
    _impl_.reason_.privilege_filter_validation_ = privilege_filter_validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.subscription.v1.GetPrivilegeCountResponse.Error.privilege_filter_validation)
}
GetPrivilegeCountResponse_Error::GetPrivilegeCountResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.GetPrivilegeCountResponse.Error)
}
GetPrivilegeCountResponse_Error::GetPrivilegeCountResponse_Error(const GetPrivilegeCountResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPrivilegeCountResponse_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 kPrivilegeFilterValidation: {
      _this->_internal_mutable_privilege_filter_validation()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError::MergeFrom(
          from._internal_privilege_filter_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeCountResponse.Error)
}

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

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

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

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

void GetPrivilegeCountResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.GetPrivilegeCountResponse.Error)
  switch (reason_case()) {
    case kPrivilegeFilterValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.privilege_filter_validation_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void GetPrivilegeCountResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.GetPrivilegeCountResponse.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* GetPrivilegeCountResponse_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.subscription.v1.PrivilegeFilter.ValidationError privilege_filter_validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_privilege_filter_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* GetPrivilegeCountResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeCountResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.subscription.v1.PrivilegeFilter.ValidationError privilege_filter_validation = 1;
  if (reason_case() == kPrivilegeFilterValidation) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::privilege_filter_validation(this),
        _Internal::privilege_filter_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.subscription.v1.GetPrivilegeCountResponse.Error)
  return target;
}

::size_t GetPrivilegeCountResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeCountResponse.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.subscription.v1.PrivilegeFilter.ValidationError privilege_filter_validation = 1;
    case kPrivilegeFilterValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.privilege_filter_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 GetPrivilegeCountResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeCountResponse_Error*>(
      &from));
}

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

  switch (from.reason_case()) {
    case kPrivilegeFilterValidation: {
      _this->_internal_mutable_privilege_filter_validation()->::keyapis::subscription::v1::PrivilegeFilter_ValidationError::MergeFrom(
          from._internal_privilege_filter_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeCountResponse_Error::InternalSwap(GetPrivilegeCountResponse_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 GetPrivilegeCountResponse_Error::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeCountResponse.Error";
}

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

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

const ::keyapis::subscription::v1::GetPrivilegeCountResponse_Error&
GetPrivilegeCountResponse::_Internal::error(const GetPrivilegeCountResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void GetPrivilegeCountResponse::set_allocated_error(::keyapis::subscription::v1::GetPrivilegeCountResponse_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.subscription.v1.GetPrivilegeCountResponse.error)
}
GetPrivilegeCountResponse::GetPrivilegeCountResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.GetPrivilegeCountResponse)
}
GetPrivilegeCountResponse::GetPrivilegeCountResponse(const GetPrivilegeCountResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPrivilegeCountResponse* 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::subscription::v1::GetPrivilegeCountResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeCountResponse)
}

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

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

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

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

void GetPrivilegeCountResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.GetPrivilegeCountResponse)
  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 GetPrivilegeCountResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.GetPrivilegeCountResponse)
  ::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* GetPrivilegeCountResponse::_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.subscription.v1.GetPrivilegeCountResponse.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* GetPrivilegeCountResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeCountResponse)
  ::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.subscription.v1.GetPrivilegeCountResponse)
  return target;
}

::size_t GetPrivilegeCountResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeCountResponse)
  ::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.subscription.v1.GetPrivilegeCountResponse.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 GetPrivilegeCountResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeCountResponse*>(
      &from));
}

void GetPrivilegeCountResponse::MergeFrom(const GetPrivilegeCountResponse& from) {
  GetPrivilegeCountResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.GetPrivilegeCountResponse)
  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::subscription::v1::GetPrivilegeCountResponse_Error::MergeFrom(
          from._internal_error());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeCountResponse::InternalSwap(GetPrivilegeCountResponse* 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 GetPrivilegeCountResponse::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeCountResponse";
}

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

class GetPrivilegeCheckRequest::_Internal {
 public:
};

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

    , decltype(_impl_.orpon_) {}

    , decltype(_impl_.privilege_type_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.flat_number_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.flat_number_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_flat_number().empty()) {
    _this->_impl_.flat_number_.Set(from._internal_flat_number(), _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.orpon_, &from._impl_.orpon_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.privilege_type_) -
    reinterpret_cast<char*>(&_impl_.orpon_)) + sizeof(_impl_.privilege_type_));
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeCheckRequest)
}

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

    , decltype(_impl_.orpon_) { ::int64_t{0} }

    , decltype(_impl_.privilege_type_) { 0 }

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

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

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

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

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

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

const char* GetPrivilegeCheckRequest::_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) {
      // int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _impl_.orpon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // string flat_number = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_flat_number();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.subscription.v1.Privilege.Type privilege_type = 3 [(.google.api.field_behavior) = REQUIRED];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 24)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_privilege_type(static_cast<::keyapis::subscription::v1::Privilege_Type>(val));
        } 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* GetPrivilegeCheckRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeCheckRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_orpon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        1, this->_internal_orpon(), target);
  }

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

  // .keyapis.subscription.v1.Privilege.Type privilege_type = 3 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_privilege_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this->_internal_privilege_type(), 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.subscription.v1.GetPrivilegeCheckRequest)
  return target;
}

::size_t GetPrivilegeCheckRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeCheckRequest)
  ::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 flat_number = 2 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_flat_number().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_flat_number());
  }

  // int64 orpon = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_orpon() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
        this->_internal_orpon());
  }

  // .keyapis.subscription.v1.Privilege.Type privilege_type = 3 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_privilege_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_privilege_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 GetPrivilegeCheckRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeCheckRequest*>(
      &from));
}

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

  if (!from._internal_flat_number().empty()) {
    _this->_internal_set_flat_number(from._internal_flat_number());
  }
  if (from._internal_orpon() != 0) {
    _this->_internal_set_orpon(from._internal_orpon());
  }
  if (from._internal_privilege_type() != 0) {
    _this->_internal_set_privilege_type(from._internal_privilege_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeCheckRequest::InternalSwap(GetPrivilegeCheckRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.flat_number_, lhs_arena,
                                       &other->_impl_.flat_number_, rhs_arena);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GetPrivilegeCheckRequest, _impl_.privilege_type_)
      + sizeof(GetPrivilegeCheckRequest::_impl_.privilege_type_)
      - PROTOBUF_FIELD_OFFSET(GetPrivilegeCheckRequest, _impl_.orpon_)>(
          reinterpret_cast<char*>(&_impl_.orpon_),
          reinterpret_cast<char*>(&other->_impl_.orpon_));
}

std::string GetPrivilegeCheckRequest::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeCheckRequest";
}

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

class GetPrivilegeCheckResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::subscription::v1::GetPrivilegeCheckResponse, _impl_._oneof_case_);
};

GetPrivilegeCheckResponse::GetPrivilegeCheckResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.subscription.v1.GetPrivilegeCheckResponse)
}
GetPrivilegeCheckResponse::GetPrivilegeCheckResponse(const GetPrivilegeCheckResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetPrivilegeCheckResponse* 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 TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.subscription.v1.GetPrivilegeCheckResponse)
}

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

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

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

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

void GetPrivilegeCheckResponse::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.subscription.v1.GetPrivilegeCheckResponse)
  switch (type_case()) {
    case kData: {
      // No need to clear
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void GetPrivilegeCheckResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.subscription.v1.GetPrivilegeCheckResponse)
  ::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* GetPrivilegeCheckResponse::_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) {
      // bool data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _internal_set_data(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&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* GetPrivilegeCheckResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.subscription.v1.GetPrivilegeCheckResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool data = 1;
  if (type_case() == kData) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this->_internal_data(), 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.subscription.v1.GetPrivilegeCheckResponse)
  return target;
}

::size_t GetPrivilegeCheckResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.subscription.v1.GetPrivilegeCheckResponse)
  ::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()) {
    // bool data = 1;
    case kData: {
      total_size += 2;
      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 GetPrivilegeCheckResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetPrivilegeCheckResponse*>(
      &from));
}

void GetPrivilegeCheckResponse::MergeFrom(const GetPrivilegeCheckResponse& from) {
  GetPrivilegeCheckResponse* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.subscription.v1.GetPrivilegeCheckResponse)
  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 TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetPrivilegeCheckResponse::InternalSwap(GetPrivilegeCheckResponse* 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 GetPrivilegeCheckResponse::GetTypeName() const {
  return "keyapis.subscription.v1.GetPrivilegeCheckResponse";
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace subscription
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::Privilege*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::Privilege >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::Privilege >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_OrponsInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegeFilter_ValidationError_FlatNumbersInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegeFilter_ValidationError*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegeFilter_ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegeFilter_ValidationError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegeFilter*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegeFilter >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegeFilter >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegePaging_ValidationError_LimitInvalid*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegePaging_ValidationError_LimitInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegePaging_ValidationError_LimitInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegePaging_ValidationError_OffsetInvalid*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegePaging_ValidationError_OffsetInvalid >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegePaging_ValidationError_OffsetInvalid >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegePaging_ValidationError*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegePaging_ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegePaging_ValidationError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::PrivilegePaging*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::PrivilegePaging >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::PrivilegePaging >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeListRequest*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeListResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeListResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeListResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeListResponse*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeCountRequest*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeCountRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeCountRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeCountResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeCountResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeCountResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeCountResponse*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeCountResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeCountResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeCheckRequest*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeCheckRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeCheckRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::subscription::v1::GetPrivilegeCheckResponse*
Arena::CreateMaybeMessage< ::keyapis::subscription::v1::GetPrivilegeCheckResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::subscription::v1::GetPrivilegeCheckResponse >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
