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

#include "keyapis/multiapp/v1/keyapis_multiapp_app_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 multiapp {
namespace v1 {
template <typename>
PROTOBUF_CONSTEXPR App_Link::App_Link(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.packages_)*/{}
  , /*decltype(_impl_.url_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 App_LinkDefaultTypeInternal _App_Link_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR App_Permissions::App_Permissions(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.allowed_token_types_)*/ {}
  , /*decltype(_impl_._allowed_token_types_cached_byte_size_)*/ { 0 }

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 App_PermissionsDefaultTypeInternal _App_Permissions_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR App_SavingError_Conflict::App_SavingError_Conflict(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct App_SavingError_ConflictDefaultTypeInternal {
  PROTOBUF_CONSTEXPR App_SavingError_ConflictDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~App_SavingError_ConflictDefaultTypeInternal() {}
  union {
    App_SavingError_Conflict _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 App_SavingError_ConflictDefaultTypeInternal _App_SavingError_Conflict_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR App_SavingError_PartnerIsNotExist::App_SavingError_PartnerIsNotExist(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct App_SavingError_PartnerIsNotExistDefaultTypeInternal {
  PROTOBUF_CONSTEXPR App_SavingError_PartnerIsNotExistDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~App_SavingError_PartnerIsNotExistDefaultTypeInternal() {}
  union {
    App_SavingError_PartnerIsNotExist _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 App_SavingError_PartnerIsNotExistDefaultTypeInternal _App_SavingError_PartnerIsNotExist_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR App_SavingError_PartnerIsDeleted::App_SavingError_PartnerIsDeleted(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct App_SavingError_PartnerIsDeletedDefaultTypeInternal {
  PROTOBUF_CONSTEXPR App_SavingError_PartnerIsDeletedDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~App_SavingError_PartnerIsDeletedDefaultTypeInternal() {}
  union {
    App_SavingError_PartnerIsDeleted _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 App_SavingError_PartnerIsDeletedDefaultTypeInternal _App_SavingError_PartnerIsDeleted_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR App_SavingError::App_SavingError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct App_SavingErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR App_SavingErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~App_SavingErrorDefaultTypeInternal() {}
  union {
    App_SavingError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 App_SavingErrorDefaultTypeInternal _App_SavingError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR App::App(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.links_)*/{}
  , /*decltype(_impl_.user_tags_)*/{}
  , /*decltype(_impl_.app_tags_)*/{}
  , /*decltype(_impl_.grant_types_)*/ {}
  , /*decltype(_impl_._grant_types_cached_byte_size_)*/ { 0 }

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

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

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

  , /*decltype(_impl_.header_)*/nullptr
  , /*decltype(_impl_.subtitle_)*/nullptr
  , /*decltype(_impl_.background_color_)*/nullptr
  , /*decltype(_impl_.created_at_)*/nullptr
  , /*decltype(_impl_.changed_at_)*/nullptr
  , /*decltype(_impl_.permissions_)*/nullptr
  , /*decltype(_impl_.type_)*/ 0

  , /*decltype(_impl_.status_type_)*/ 0
} {}
struct AppDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AppDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AppDefaultTypeInternal() {}
  union {
    App _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppDefaultTypeInternal _App_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR AppLite_LinkLite::AppLite_LinkLite(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.packages_)*/{}
  , /*decltype(_impl_.url_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppLite_LinkLiteDefaultTypeInternal _AppLite_LinkLite_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR AppLite::AppLite(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.links_)*/{}
  , /*decltype(_impl_.id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

  , /*decltype(_impl_.header_)*/nullptr
  , /*decltype(_impl_.subtitle_)*/nullptr
  , /*decltype(_impl_.background_color_)*/nullptr
  , /*decltype(_impl_.status_type_)*/ 0
} {}
struct AppLiteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AppLiteDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AppLiteDefaultTypeInternal() {}
  union {
    AppLite _instance;
  };
};

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

  , /*decltype(_impl_.partner_ids_)*/{}
  , /*decltype(_impl_.status_types_)*/ {}
  , /*decltype(_impl_._status_types_cached_byte_size_)*/ { 0 }

  , /*decltype(_impl_.user_tags_)*/{}
  , /*decltype(_impl_.app_tags_)*/{}
  , /*decltype(_impl_.text_)*/nullptr} {}
struct AppFilterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AppFilterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AppFilterDefaultTypeInternal() {}
  union {
    AppFilter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppFilterDefaultTypeInternal _AppFilter_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR AppLiteFilter_AppLiteTag::AppLiteFilter_AppLiteTag(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.app_name_)*/nullptr
  , /*decltype(_impl_.platform_type_)*/ 0
} {}
struct AppLiteFilter_AppLiteTagDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AppLiteFilter_AppLiteTagDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AppLiteFilter_AppLiteTagDefaultTypeInternal() {}
  union {
    AppLiteFilter_AppLiteTag _instance;
  };
};

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

  , /*decltype(_impl_.user_tags_)*/{}
  , /*decltype(_impl_.app_lite_tag_)*/nullptr} {}
struct AppLiteFilterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AppLiteFilterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AppLiteFilterDefaultTypeInternal() {}
  union {
    AppLiteFilter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppLiteFilterDefaultTypeInternal _AppLiteFilter_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR AppPaging::AppPaging(
    ::_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 AppPagingDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AppPagingDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AppPagingDefaultTypeInternal() {}
  union {
    AppPaging _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppPagingDefaultTypeInternal _AppPaging_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR AppLitePaging::AppLitePaging(
    ::_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 AppLitePagingDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AppLitePagingDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AppLitePagingDefaultTypeInternal() {}
  union {
    AppLitePaging _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppLitePagingDefaultTypeInternal _AppLitePaging_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostAppRequest::PostAppRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.data_)*/nullptr} {}
struct PostAppRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostAppRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostAppRequestDefaultTypeInternal() {}
  union {
    PostAppRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostAppRequestDefaultTypeInternal _PostAppRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostAppResponse_Error::PostAppResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostAppResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostAppResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostAppResponse_ErrorDefaultTypeInternal() {}
  union {
    PostAppResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostAppResponse_ErrorDefaultTypeInternal _PostAppResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostAppResponse::PostAppResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostAppResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostAppResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostAppResponseDefaultTypeInternal() {}
  union {
    PostAppResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostAppResponseDefaultTypeInternal _PostAppResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppRequest::GetAppRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppRequestDefaultTypeInternal _GetAppRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppResponse_Error::GetAppResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppResponse_ErrorDefaultTypeInternal() {}
  union {
    GetAppResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppResponse_ErrorDefaultTypeInternal _GetAppResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppResponse::GetAppResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppResponseDefaultTypeInternal() {}
  union {
    GetAppResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppResponseDefaultTypeInternal _GetAppResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteRequest::GetAppLiteRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteRequestDefaultTypeInternal _GetAppLiteRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteResponse_Error::GetAppLiteResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppLiteResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppLiteResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppLiteResponse_ErrorDefaultTypeInternal() {}
  union {
    GetAppLiteResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteResponse_ErrorDefaultTypeInternal _GetAppLiteResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteResponse::GetAppLiteResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppLiteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppLiteResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppLiteResponseDefaultTypeInternal() {}
  union {
    GetAppLiteResponse _instance;
  };
};

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppListRequestDefaultTypeInternal _GetAppListRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppListResponse_Error::GetAppListResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppListResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppListResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppListResponse_ErrorDefaultTypeInternal() {}
  union {
    GetAppListResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppListResponse_ErrorDefaultTypeInternal _GetAppListResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppListResponse::GetAppListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppListResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppListResponseDefaultTypeInternal() {}
  union {
    GetAppListResponse _instance;
  };
};

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteListRequestDefaultTypeInternal _GetAppLiteListRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteListResponse_Error::GetAppLiteListResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppLiteListResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppLiteListResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppLiteListResponse_ErrorDefaultTypeInternal() {}
  union {
    GetAppLiteListResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteListResponse_ErrorDefaultTypeInternal _GetAppLiteListResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteListResponse::GetAppLiteListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppLiteListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppLiteListResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppLiteListResponseDefaultTypeInternal() {}
  union {
    GetAppLiteListResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteListResponseDefaultTypeInternal _GetAppLiteListResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteCountRequest::GetAppLiteCountRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.filter_)*/nullptr} {}
struct GetAppLiteCountRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppLiteCountRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppLiteCountRequestDefaultTypeInternal() {}
  union {
    GetAppLiteCountRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteCountRequestDefaultTypeInternal _GetAppLiteCountRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteCountResponse_Error::GetAppLiteCountResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppLiteCountResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppLiteCountResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppLiteCountResponse_ErrorDefaultTypeInternal() {}
  union {
    GetAppLiteCountResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteCountResponse_ErrorDefaultTypeInternal _GetAppLiteCountResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppLiteCountResponse::GetAppLiteCountResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppLiteCountResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppLiteCountResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppLiteCountResponseDefaultTypeInternal() {}
  union {
    GetAppLiteCountResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppLiteCountResponseDefaultTypeInternal _GetAppLiteCountResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCountRequest::GetAppCountRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.filter_)*/nullptr} {}
struct GetAppCountRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppCountRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppCountRequestDefaultTypeInternal() {}
  union {
    GetAppCountRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCountRequestDefaultTypeInternal _GetAppCountRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCountResponse_Error::GetAppCountResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppCountResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppCountResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppCountResponse_ErrorDefaultTypeInternal() {}
  union {
    GetAppCountResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCountResponse_ErrorDefaultTypeInternal _GetAppCountResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCountResponse::GetAppCountResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppCountResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppCountResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppCountResponseDefaultTypeInternal() {}
  union {
    GetAppCountResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCountResponseDefaultTypeInternal _GetAppCountResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCodeRequest::GetAppCodeRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCodeRequestDefaultTypeInternal _GetAppCodeRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCodeResponse_Error_PartnerKeyDoesNotExist::GetAppCodeResponse_Error_PartnerKeyDoesNotExist(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct GetAppCodeResponse_Error_PartnerKeyDoesNotExistDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppCodeResponse_Error_PartnerKeyDoesNotExistDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppCodeResponse_Error_PartnerKeyDoesNotExistDefaultTypeInternal() {}
  union {
    GetAppCodeResponse_Error_PartnerKeyDoesNotExist _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCodeResponse_Error_PartnerKeyDoesNotExistDefaultTypeInternal _GetAppCodeResponse_Error_PartnerKeyDoesNotExist_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCodeResponse_Error_AppIsInactive::GetAppCodeResponse_Error_AppIsInactive(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct GetAppCodeResponse_Error_AppIsInactiveDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppCodeResponse_Error_AppIsInactiveDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppCodeResponse_Error_AppIsInactiveDefaultTypeInternal() {}
  union {
    GetAppCodeResponse_Error_AppIsInactive _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCodeResponse_Error_AppIsInactiveDefaultTypeInternal _GetAppCodeResponse_Error_AppIsInactive_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCodeResponse_Error::GetAppCodeResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppCodeResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppCodeResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppCodeResponse_ErrorDefaultTypeInternal() {}
  union {
    GetAppCodeResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCodeResponse_ErrorDefaultTypeInternal _GetAppCodeResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetAppCodeResponse::GetAppCodeResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetAppCodeResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetAppCodeResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetAppCodeResponseDefaultTypeInternal() {}
  union {
    GetAppCodeResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAppCodeResponseDefaultTypeInternal _GetAppCodeResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeleteAppRequest::DeleteAppRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeleteAppRequestDefaultTypeInternal _DeleteAppRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeleteAppResponse_Error::DeleteAppResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeleteAppResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeleteAppResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeleteAppResponse_ErrorDefaultTypeInternal() {}
  union {
    DeleteAppResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeleteAppResponse_ErrorDefaultTypeInternal _DeleteAppResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR DeleteAppResponse::DeleteAppResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct DeleteAppResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DeleteAppResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DeleteAppResponseDefaultTypeInternal() {}
  union {
    DeleteAppResponse _instance;
  };
};

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ValidationErrorDefaultTypeInternal _ValidationError_default_instance_;
}  // namespace v1
}  // namespace multiapp
}  // namespace keyapis
namespace keyapis {
namespace multiapp {
namespace v1 {
bool App_Link_Type_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>
    App_Link_Type_strings[6] = {};

static const char App_Link_Type_names[] = {
    "EXTERNAL_APP"
    "EXTERNAL_WEB_VIEW"
    "INTERNAL_APP"
    "TYPE_UNKNOWN"
    "WEB_BROWSER"
    "WEB_VIEW"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry App_Link_Type_entries[] =
    {
        {{&App_Link_Type_names[0], 12}, 2},
        {{&App_Link_Type_names[12], 17}, 5},
        {{&App_Link_Type_names[29], 12}, 1},
        {{&App_Link_Type_names[41], 12}, 0},
        {{&App_Link_Type_names[53], 11}, 4},
        {{&App_Link_Type_names[64], 8}, 3},
};

static const int App_Link_Type_entries_by_number[] = {
    3,  // 0 -> TYPE_UNKNOWN
    2,  // 1 -> INTERNAL_APP
    0,  // 2 -> EXTERNAL_APP
    5,  // 3 -> WEB_VIEW
    4,  // 4 -> WEB_BROWSER
    1,  // 5 -> EXTERNAL_WEB_VIEW
};

const std::string& App_Link_Type_Name(App_Link_Type value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          App_Link_Type_entries, App_Link_Type_entries_by_number,
          6, App_Link_Type_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      App_Link_Type_entries, App_Link_Type_entries_by_number, 6,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : App_Link_Type_strings[idx].get();
}

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

constexpr App_Link_Type App_Link::TYPE_UNKNOWN;
constexpr App_Link_Type App_Link::INTERNAL_APP;
constexpr App_Link_Type App_Link::EXTERNAL_APP;
constexpr App_Link_Type App_Link::WEB_VIEW;
constexpr App_Link_Type App_Link::WEB_BROWSER;
constexpr App_Link_Type App_Link::EXTERNAL_WEB_VIEW;
constexpr App_Link_Type App_Link::Type_MIN;
constexpr App_Link_Type App_Link::Type_MAX;
constexpr int App_Link::Type_ARRAYSIZE;

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

static const char App_Permissions_AllowedTokenType_names[] = {
    "ACCESS"
    "ALLOWED_TOKEN_TYPE_UNKNOWN"
    "ID"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry App_Permissions_AllowedTokenType_entries[] =
    {
        {{&App_Permissions_AllowedTokenType_names[0], 6}, 2},
        {{&App_Permissions_AllowedTokenType_names[6], 26}, 0},
        {{&App_Permissions_AllowedTokenType_names[32], 2}, 1},
};

static const int App_Permissions_AllowedTokenType_entries_by_number[] = {
    1,  // 0 -> ALLOWED_TOKEN_TYPE_UNKNOWN
    2,  // 1 -> ID
    0,  // 2 -> ACCESS
};

const std::string& App_Permissions_AllowedTokenType_Name(App_Permissions_AllowedTokenType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          App_Permissions_AllowedTokenType_entries, App_Permissions_AllowedTokenType_entries_by_number,
          3, App_Permissions_AllowedTokenType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      App_Permissions_AllowedTokenType_entries, App_Permissions_AllowedTokenType_entries_by_number, 3,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : App_Permissions_AllowedTokenType_strings[idx].get();
}

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

constexpr App_Permissions_AllowedTokenType App_Permissions::ALLOWED_TOKEN_TYPE_UNKNOWN;
constexpr App_Permissions_AllowedTokenType App_Permissions::ID;
constexpr App_Permissions_AllowedTokenType App_Permissions::ACCESS;
constexpr App_Permissions_AllowedTokenType App_Permissions::AllowedTokenType_MIN;
constexpr App_Permissions_AllowedTokenType App_Permissions::AllowedTokenType_MAX;
constexpr int App_Permissions::AllowedTokenType_ARRAYSIZE;

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

static const char App_Type_names[] = {
    "STANDARD"
    "TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry App_Type_entries[] =
    {
        {{&App_Type_names[0], 8}, 1},
        {{&App_Type_names[8], 12}, 0},
};

static const int App_Type_entries_by_number[] = {
    1,  // 0 -> TYPE_UNKNOWN
    0,  // 1 -> STANDARD
};

const std::string& App_Type_Name(App_Type value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          App_Type_entries, App_Type_entries_by_number,
          2, App_Type_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      App_Type_entries, App_Type_entries_by_number, 2,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : App_Type_strings[idx].get();
}

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

constexpr App_Type App::TYPE_UNKNOWN;
constexpr App_Type App::STANDARD;
constexpr App_Type App::Type_MIN;
constexpr App_Type App::Type_MAX;
constexpr int App::Type_ARRAYSIZE;

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

static const char App_StatusType_names[] = {
    "ACTIVE"
    "BLOCKED"
    "DELETED"
    "STATUS_TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry App_StatusType_entries[] =
    {
        {{&App_StatusType_names[0], 6}, 2},
        {{&App_StatusType_names[6], 7}, 1},
        {{&App_StatusType_names[13], 7}, 3},
        {{&App_StatusType_names[20], 19}, 0},
};

static const int App_StatusType_entries_by_number[] = {
    3,  // 0 -> STATUS_TYPE_UNKNOWN
    1,  // 1 -> BLOCKED
    0,  // 2 -> ACTIVE
    2,  // 3 -> DELETED
};

const std::string& App_StatusType_Name(App_StatusType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          App_StatusType_entries, App_StatusType_entries_by_number,
          4, App_StatusType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      App_StatusType_entries, App_StatusType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : App_StatusType_strings[idx].get();
}

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

constexpr App_StatusType App::STATUS_TYPE_UNKNOWN;
constexpr App_StatusType App::BLOCKED;
constexpr App_StatusType App::ACTIVE;
constexpr App_StatusType App::DELETED;
constexpr App_StatusType App::StatusType_MIN;
constexpr App_StatusType App::StatusType_MAX;
constexpr int App::StatusType_ARRAYSIZE;

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

static const char App_PlatformType_names[] = {
    "ANDROID"
    "IOS"
    "PLATFORM_TYPE_UNKNOWN"
    "WEB"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry App_PlatformType_entries[] =
    {
        {{&App_PlatformType_names[0], 7}, 2},
        {{&App_PlatformType_names[7], 3}, 1},
        {{&App_PlatformType_names[10], 21}, 0},
        {{&App_PlatformType_names[31], 3}, 3},
};

static const int App_PlatformType_entries_by_number[] = {
    2,  // 0 -> PLATFORM_TYPE_UNKNOWN
    1,  // 1 -> IOS
    0,  // 2 -> ANDROID
    3,  // 3 -> WEB
};

const std::string& App_PlatformType_Name(App_PlatformType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          App_PlatformType_entries, App_PlatformType_entries_by_number,
          4, App_PlatformType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      App_PlatformType_entries, App_PlatformType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : App_PlatformType_strings[idx].get();
}

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

constexpr App_PlatformType App::PLATFORM_TYPE_UNKNOWN;
constexpr App_PlatformType App::IOS;
constexpr App_PlatformType App::ANDROID;
constexpr App_PlatformType App::WEB;
constexpr App_PlatformType App::PlatformType_MIN;
constexpr App_PlatformType App::PlatformType_MAX;
constexpr int App::PlatformType_ARRAYSIZE;

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

static const char App_GrantType_names[] = {
    "GET_ACCESS_TOKEN"
    "GET_ID_TOKEN"
    "GRANT_TYPE_UNKNOWN"
    "POST_NOTIF_NO_ASSIGN_CHECK"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry App_GrantType_entries[] =
    {
        {{&App_GrantType_names[0], 16}, 1},
        {{&App_GrantType_names[16], 12}, 2},
        {{&App_GrantType_names[28], 18}, 0},
        {{&App_GrantType_names[46], 26}, 3},
};

static const int App_GrantType_entries_by_number[] = {
    2,  // 0 -> GRANT_TYPE_UNKNOWN
    0,  // 1 -> GET_ACCESS_TOKEN
    1,  // 2 -> GET_ID_TOKEN
    3,  // 3 -> POST_NOTIF_NO_ASSIGN_CHECK
};

const std::string& App_GrantType_Name(App_GrantType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          App_GrantType_entries, App_GrantType_entries_by_number,
          4, App_GrantType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      App_GrantType_entries, App_GrantType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : App_GrantType_strings[idx].get();
}

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

constexpr App_GrantType App::GRANT_TYPE_UNKNOWN;
constexpr App_GrantType App::GET_ACCESS_TOKEN;
constexpr App_GrantType App::GET_ID_TOKEN;
constexpr App_GrantType App::POST_NOTIF_NO_ASSIGN_CHECK;
constexpr App_GrantType App::GrantType_MIN;
constexpr App_GrantType App::GrantType_MAX;
constexpr int App::GrantType_ARRAYSIZE;

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

static const char AppPaging_OrderByType_names[] = {
    "CHANGED_AT"
    "CREATED_AT"
    "ORDER_BY_TYPE_UNKNOWN"
    "RANK"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry AppPaging_OrderByType_entries[] =
    {
        {{&AppPaging_OrderByType_names[0], 10}, 1},
        {{&AppPaging_OrderByType_names[10], 10}, 2},
        {{&AppPaging_OrderByType_names[20], 21}, 0},
        {{&AppPaging_OrderByType_names[41], 4}, 3},
};

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

const std::string& AppPaging_OrderByType_Name(AppPaging_OrderByType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          AppPaging_OrderByType_entries, AppPaging_OrderByType_entries_by_number,
          4, AppPaging_OrderByType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      AppPaging_OrderByType_entries, AppPaging_OrderByType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : AppPaging_OrderByType_strings[idx].get();
}

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

constexpr AppPaging_OrderByType AppPaging::ORDER_BY_TYPE_UNKNOWN;
constexpr AppPaging_OrderByType AppPaging::CHANGED_AT;
constexpr AppPaging_OrderByType AppPaging::CREATED_AT;
constexpr AppPaging_OrderByType AppPaging::RANK;
constexpr AppPaging_OrderByType AppPaging::OrderByType_MIN;
constexpr AppPaging_OrderByType AppPaging::OrderByType_MAX;
constexpr int AppPaging::OrderByType_ARRAYSIZE;

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

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

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

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

const std::string& AppPaging_DirectionType_Name(AppPaging_DirectionType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          AppPaging_DirectionType_entries, AppPaging_DirectionType_entries_by_number,
          3, AppPaging_DirectionType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      AppPaging_DirectionType_entries, AppPaging_DirectionType_entries_by_number, 3,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : AppPaging_DirectionType_strings[idx].get();
}

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

constexpr AppPaging_DirectionType AppPaging::DIRECTION_TYPE_UNKNOWN;
constexpr AppPaging_DirectionType AppPaging::DESC;
constexpr AppPaging_DirectionType AppPaging::ASC;
constexpr AppPaging_DirectionType AppPaging::DirectionType_MIN;
constexpr AppPaging_DirectionType AppPaging::DirectionType_MAX;
constexpr int AppPaging::DirectionType_ARRAYSIZE;

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

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

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry AppLitePaging_OrderByType_entries[] =
    {
        {{&AppLitePaging_OrderByType_names[0], 10}, 1},
        {{&AppLitePaging_OrderByType_names[10], 10}, 2},
        {{&AppLitePaging_OrderByType_names[20], 21}, 0},
};

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

const std::string& AppLitePaging_OrderByType_Name(AppLitePaging_OrderByType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          AppLitePaging_OrderByType_entries, AppLitePaging_OrderByType_entries_by_number,
          3, AppLitePaging_OrderByType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      AppLitePaging_OrderByType_entries, AppLitePaging_OrderByType_entries_by_number, 3,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : AppLitePaging_OrderByType_strings[idx].get();
}

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

constexpr AppLitePaging_OrderByType AppLitePaging::ORDER_BY_TYPE_UNKNOWN;
constexpr AppLitePaging_OrderByType AppLitePaging::CHANGED_AT;
constexpr AppLitePaging_OrderByType AppLitePaging::CREATED_AT;
constexpr AppLitePaging_OrderByType AppLitePaging::OrderByType_MIN;
constexpr AppLitePaging_OrderByType AppLitePaging::OrderByType_MAX;
constexpr int AppLitePaging::OrderByType_ARRAYSIZE;

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

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

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

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

const std::string& AppLitePaging_DirectionType_Name(AppLitePaging_DirectionType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          AppLitePaging_DirectionType_entries, AppLitePaging_DirectionType_entries_by_number,
          3, AppLitePaging_DirectionType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      AppLitePaging_DirectionType_entries, AppLitePaging_DirectionType_entries_by_number, 3,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : AppLitePaging_DirectionType_strings[idx].get();
}

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

constexpr AppLitePaging_DirectionType AppLitePaging::DIRECTION_TYPE_UNKNOWN;
constexpr AppLitePaging_DirectionType AppLitePaging::DESC;
constexpr AppLitePaging_DirectionType AppLitePaging::ASC;
constexpr AppLitePaging_DirectionType AppLitePaging::DirectionType_MIN;
constexpr AppLitePaging_DirectionType AppLitePaging::DirectionType_MAX;
constexpr int AppLitePaging::DirectionType_ARRAYSIZE;

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

class App_Link::_Internal {
 public:
};

App_Link::App_Link(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.App.Link)
}
App_Link::App_Link(const App_Link& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  App_Link* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.packages_){from._impl_.packages_}
    , decltype(_impl_.url_) {}

    , decltype(_impl_.platform_type_) {}

    , decltype(_impl_.type_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.url_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.url_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_url().empty()) {
    _this->_impl_.url_.Set(from._internal_url(), _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.platform_type_, &from._impl_.platform_type_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.type_) -
    reinterpret_cast<char*>(&_impl_.platform_type_)) + sizeof(_impl_.type_));
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.App.Link)
}

inline void App_Link::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.packages_){arena}
    , decltype(_impl_.url_) {}

    , decltype(_impl_.platform_type_) { 0 }

    , decltype(_impl_.type_) { 0 }

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

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

inline void App_Link::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_packages()->~RepeatedPtrField();
  _impl_.url_.Destroy();
}

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

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

  _internal_mutable_packages()->Clear();
  _impl_.url_.ClearToEmpty();
  ::memset(&_impl_.platform_type_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.type_) -
      reinterpret_cast<char*>(&_impl_.platform_type_)) + sizeof(_impl_.type_));
  _internal_metadata_.Clear<std::string>();
}

const char* App_Link::_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.multiapp.v1.App.PlatformType platform_type = 1 [(.google.api.field_behavior) = REQUIRED];
      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_platform_type(static_cast<::keyapis::multiapp::v1::App_PlatformType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.Link.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::multiapp::v1::App_Link_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string url = 3 [(.google.api.field_behavior) = REQUIRED];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_url();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string packages = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_packages();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(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* App_Link::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.App.Link)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.multiapp.v1.App.PlatformType platform_type = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_platform_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this->_internal_platform_type(), target);
  }

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

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

  // repeated string packages = 4;
  for (int i = 0, n = this->_internal_packages_size(); i < n; ++i) {
    const auto& s = this->_internal_packages(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.App.Link.packages");
    target = stream->WriteString(4, s, target);
  }

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

::size_t App_Link::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.App.Link)
  ::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 string packages = 4;
  total_size += 1 * ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_internal_packages().size());
  for (int i = 0, n = _internal_packages().size(); i < n; ++i) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        _internal_packages().Get(i));
  }

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

  // .keyapis.multiapp.v1.App.PlatformType platform_type = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_platform_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_platform_type());
  }

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

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

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

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

  _this->_internal_mutable_packages()->MergeFrom(from._internal_packages());
  if (!from._internal_url().empty()) {
    _this->_internal_set_url(from._internal_url());
  }
  if (from._internal_platform_type() != 0) {
    _this->_internal_set_platform_type(from._internal_platform_type());
  }
  if (from._internal_type() != 0) {
    _this->_internal_set_type(from._internal_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string App_Link::GetTypeName() const {
  return "keyapis.multiapp.v1.App.Link";
}

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

class App_Permissions::_Internal {
 public:
};

App_Permissions::App_Permissions(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.App.Permissions)
}
App_Permissions::App_Permissions(const App_Permissions& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  App_Permissions* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.allowed_token_types_) { from._internal_allowed_token_types() }
    , /*decltype(_impl_._allowed_token_types_cached_byte_size_)*/ { 0 }

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.App.Permissions)
}

inline void App_Permissions::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.allowed_token_types_) { arena }
    , /*decltype(_impl_._allowed_token_types_cached_byte_size_)*/ { 0 }

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

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

inline void App_Permissions::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_allowed_token_types()->~RepeatedField();
}

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

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

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

const char* App_Permissions::_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 .keyapis.multiapp.v1.App.Permissions.AllowedTokenType allowed_token_types = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_allowed_token_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 8) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_allowed_token_types(static_cast<::keyapis::multiapp::v1::App_Permissions_AllowedTokenType>(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* App_Permissions::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.App.Permissions)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .keyapis.multiapp.v1.App.Permissions.AllowedTokenType allowed_token_types = 1;
  {
    int byte_size = _impl_._allowed_token_types_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(1, _internal_allowed_token_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.multiapp.v1.App.Permissions)
  return target;
}

::size_t App_Permissions::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.App.Permissions)
  ::size_t total_size = 0;

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

  // repeated .keyapis.multiapp.v1.App.Permissions.AllowedTokenType allowed_token_types = 1;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_allowed_token_types_size());

    for (std::size_t i = 0; i < count; ++i) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
          this->_internal_allowed_token_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_._allowed_token_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 App_Permissions::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const App_Permissions*>(
      &from));
}

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

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

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

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

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

std::string App_Permissions::GetTypeName() const {
  return "keyapis.multiapp.v1.App.Permissions";
}

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

class App_SavingError_Conflict::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

::size_t App_SavingError_Conflict::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.App.SavingError.Conflict)
  ::size_t total_size = 0;

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

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

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

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

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

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

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

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

std::string App_SavingError_Conflict::GetTypeName() const {
  return "keyapis.multiapp.v1.App.SavingError.Conflict";
}

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

class App_SavingError_PartnerIsNotExist::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

std::string App_SavingError_PartnerIsNotExist::GetTypeName() const {
  return "keyapis.multiapp.v1.App.SavingError.PartnerIsNotExist";
}

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

class App_SavingError_PartnerIsDeleted::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

std::string App_SavingError_PartnerIsDeleted::GetTypeName() const {
  return "keyapis.multiapp.v1.App.SavingError.PartnerIsDeleted";
}

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

class App_SavingError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::multiapp::v1::App_SavingError, _impl_._oneof_case_);
  static const ::keyapis::multiapp::v1::App_SavingError_Conflict& conflict(const App_SavingError* msg);
  static const ::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist& partner_is_not_exist(const App_SavingError* msg);
  static const ::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted& partner_is_deleted(const App_SavingError* msg);
};

const ::keyapis::multiapp::v1::App_SavingError_Conflict&
App_SavingError::_Internal::conflict(const App_SavingError* msg) {
  return *msg->_impl_.reason_.conflict_;
}
const ::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist&
App_SavingError::_Internal::partner_is_not_exist(const App_SavingError* msg) {
  return *msg->_impl_.reason_.partner_is_not_exist_;
}
const ::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted&
App_SavingError::_Internal::partner_is_deleted(const App_SavingError* msg) {
  return *msg->_impl_.reason_.partner_is_deleted_;
}
void App_SavingError::set_allocated_conflict(::keyapis::multiapp::v1::App_SavingError_Conflict* conflict) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (conflict) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(conflict);
    if (message_arena != submessage_arena) {
      conflict = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, conflict, submessage_arena);
    }
    set_has_conflict();
    _impl_.reason_.conflict_ = conflict;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.multiapp.v1.App.SavingError.conflict)
}
void App_SavingError::set_allocated_partner_is_not_exist(::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist* partner_is_not_exist) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (partner_is_not_exist) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(partner_is_not_exist);
    if (message_arena != submessage_arena) {
      partner_is_not_exist = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, partner_is_not_exist, submessage_arena);
    }
    set_has_partner_is_not_exist();
    _impl_.reason_.partner_is_not_exist_ = partner_is_not_exist;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.multiapp.v1.App.SavingError.partner_is_not_exist)
}
void App_SavingError::set_allocated_partner_is_deleted(::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted* partner_is_deleted) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (partner_is_deleted) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(partner_is_deleted);
    if (message_arena != submessage_arena) {
      partner_is_deleted = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, partner_is_deleted, submessage_arena);
    }
    set_has_partner_is_deleted();
    _impl_.reason_.partner_is_deleted_ = partner_is_deleted;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.multiapp.v1.App.SavingError.partner_is_deleted)
}
App_SavingError::App_SavingError(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.App.SavingError)
}
App_SavingError::App_SavingError(const App_SavingError& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  App_SavingError* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kConflict: {
      _this->_internal_mutable_conflict()->::keyapis::multiapp::v1::App_SavingError_Conflict::MergeFrom(
          from._internal_conflict());
      break;
    }
    case kPartnerIsNotExist: {
      _this->_internal_mutable_partner_is_not_exist()->::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist::MergeFrom(
          from._internal_partner_is_not_exist());
      break;
    }
    case kPartnerIsDeleted: {
      _this->_internal_mutable_partner_is_deleted()->::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted::MergeFrom(
          from._internal_partner_is_deleted());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.App.SavingError)
}

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

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

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

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

void App_SavingError::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.multiapp.v1.App.SavingError)
  switch (reason_case()) {
    case kConflict: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.conflict_;
      }
      break;
    }
    case kPartnerIsNotExist: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.partner_is_not_exist_;
      }
      break;
    }
    case kPartnerIsDeleted: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.partner_is_deleted_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


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

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

const char* App_SavingError::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.multiapp.v1.App.SavingError.Conflict conflict = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_conflict(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.SavingError.PartnerIsNotExist partner_is_not_exist = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_partner_is_not_exist(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.SavingError.PartnerIsDeleted partner_is_deleted = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_partner_is_deleted(), 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* App_SavingError::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.App.SavingError)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kConflict: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::conflict(this),
          _Internal::conflict(this).GetCachedSize(), target, stream);
      break;
    }
    case kPartnerIsNotExist: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::partner_is_not_exist(this),
          _Internal::partner_is_not_exist(this).GetCachedSize(), target, stream);
      break;
    }
    case kPartnerIsDeleted: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, _Internal::partner_is_deleted(this),
          _Internal::partner_is_deleted(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.multiapp.v1.App.SavingError)
  return target;
}

::size_t App_SavingError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.App.SavingError)
  ::size_t total_size = 0;

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

  switch (reason_case()) {
    // .keyapis.multiapp.v1.App.SavingError.Conflict conflict = 1;
    case kConflict: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.conflict_);
      break;
    }
    // .keyapis.multiapp.v1.App.SavingError.PartnerIsNotExist partner_is_not_exist = 2;
    case kPartnerIsNotExist: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.partner_is_not_exist_);
      break;
    }
    // .keyapis.multiapp.v1.App.SavingError.PartnerIsDeleted partner_is_deleted = 3;
    case kPartnerIsDeleted: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.partner_is_deleted_);
      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 App_SavingError::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const App_SavingError*>(
      &from));
}

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

  switch (from.reason_case()) {
    case kConflict: {
      _this->_internal_mutable_conflict()->::keyapis::multiapp::v1::App_SavingError_Conflict::MergeFrom(
          from._internal_conflict());
      break;
    }
    case kPartnerIsNotExist: {
      _this->_internal_mutable_partner_is_not_exist()->::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist::MergeFrom(
          from._internal_partner_is_not_exist());
      break;
    }
    case kPartnerIsDeleted: {
      _this->_internal_mutable_partner_is_deleted()->::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted::MergeFrom(
          from._internal_partner_is_deleted());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string App_SavingError::GetTypeName() const {
  return "keyapis.multiapp.v1.App.SavingError";
}

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

class App::_Internal {
 public:
  using HasBits = decltype(std::declval<App>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(App, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& header(const App* msg);
  static void set_has_header(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& subtitle(const App* msg);
  static void set_has_subtitle(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& background_color(const App* msg);
  static void set_has_background_color(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& created_at(const App* msg);
  static void set_has_created_at(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& changed_at(const App* msg);
  static void set_has_changed_at(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static const ::keyapis::multiapp::v1::App_Permissions& permissions(const App* msg);
  static void set_has_permissions(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::StringValue&
App::_Internal::header(const App* msg) {
  return *msg->_impl_.header_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
App::_Internal::subtitle(const App* msg) {
  return *msg->_impl_.subtitle_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
App::_Internal::background_color(const App* msg) {
  return *msg->_impl_.background_color_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
App::_Internal::created_at(const App* msg) {
  return *msg->_impl_.created_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
App::_Internal::changed_at(const App* msg) {
  return *msg->_impl_.changed_at_;
}
const ::keyapis::multiapp::v1::App_Permissions&
App::_Internal::permissions(const App* msg) {
  return *msg->_impl_.permissions_;
}
void App::clear_header() {
  if (_impl_.header_ != nullptr) _impl_.header_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void App::clear_subtitle() {
  if (_impl_.subtitle_ != nullptr) _impl_.subtitle_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
void App::clear_background_color() {
  if (_impl_.background_color_ != nullptr) _impl_.background_color_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
void App::clear_created_at() {
  if (_impl_.created_at_ != nullptr) _impl_.created_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000008u;
}
void App::clear_changed_at() {
  if (_impl_.changed_at_ != nullptr) _impl_.changed_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000010u;
}
App::App(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.App)
}
App::App(const App& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  App* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.links_){from._impl_.links_}
    , decltype(_impl_.user_tags_){from._impl_.user_tags_}
    , decltype(_impl_.app_tags_){from._impl_.app_tags_}
    , decltype(_impl_.grant_types_) { from._internal_grant_types() }
    , /*decltype(_impl_._grant_types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.id_) {}

    , decltype(_impl_.partner_id_) {}

    , decltype(_impl_.title_) {}

    , decltype(_impl_.header_){nullptr}
    , decltype(_impl_.subtitle_){nullptr}
    , decltype(_impl_.background_color_){nullptr}
    , decltype(_impl_.created_at_){nullptr}
    , decltype(_impl_.changed_at_){nullptr}
    , decltype(_impl_.permissions_){nullptr}
    , decltype(_impl_.type_) {}

    , decltype(_impl_.status_type_) {}
  };

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_id().empty()) {
    _this->_impl_.id_.Set(from._internal_id(), _this->GetArenaForAllocation());
  }
  _impl_.partner_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.partner_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_partner_id().empty()) {
    _this->_impl_.partner_id_.Set(from._internal_partner_id(), _this->GetArenaForAllocation());
  }
  _impl_.title_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.title_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_title().empty()) {
    _this->_impl_.title_.Set(from._internal_title(), _this->GetArenaForAllocation());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.header_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.header_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000002u) != 0) {
    _this->_impl_.subtitle_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.subtitle_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000004u) != 0) {
    _this->_impl_.background_color_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.background_color_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000008u) != 0) {
    _this->_impl_.created_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.created_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000010u) != 0) {
    _this->_impl_.changed_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.changed_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000020u) != 0) {
    _this->_impl_.permissions_ = new ::keyapis::multiapp::v1::App_Permissions(*from._impl_.permissions_);
  }
  ::memcpy(&_impl_.type_, &from._impl_.type_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.status_type_) -
    reinterpret_cast<char*>(&_impl_.type_)) + sizeof(_impl_.status_type_));
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.App)
}

inline void App::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.links_){arena}
    , decltype(_impl_.user_tags_){arena}
    , decltype(_impl_.app_tags_){arena}
    , decltype(_impl_.grant_types_) { arena }
    , /*decltype(_impl_._grant_types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.id_) {}

    , decltype(_impl_.partner_id_) {}

    , decltype(_impl_.title_) {}

    , decltype(_impl_.header_){nullptr}
    , decltype(_impl_.subtitle_){nullptr}
    , decltype(_impl_.background_color_){nullptr}
    , decltype(_impl_.created_at_){nullptr}
    , decltype(_impl_.changed_at_){nullptr}
    , decltype(_impl_.permissions_){nullptr}
    , decltype(_impl_.type_) { 0 }

    , decltype(_impl_.status_type_) { 0 }

  };
  _impl_.id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.partner_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.partner_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.title_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.title_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

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

inline void App::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_links()->~RepeatedPtrField();
  _internal_mutable_user_tags()->~RepeatedPtrField();
  _internal_mutable_app_tags()->~RepeatedPtrField();
  _internal_mutable_grant_types()->~RepeatedField();
  _impl_.id_.Destroy();
  _impl_.partner_id_.Destroy();
  _impl_.title_.Destroy();
  if (this != internal_default_instance()) delete _impl_.header_;
  if (this != internal_default_instance()) delete _impl_.subtitle_;
  if (this != internal_default_instance()) delete _impl_.background_color_;
  if (this != internal_default_instance()) delete _impl_.created_at_;
  if (this != internal_default_instance()) delete _impl_.changed_at_;
  if (this != internal_default_instance()) delete _impl_.permissions_;
}

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

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

  _internal_mutable_links()->Clear();
  _internal_mutable_user_tags()->Clear();
  _internal_mutable_app_tags()->Clear();
  _internal_mutable_grant_types()->Clear();
  _impl_.id_.ClearToEmpty();
  _impl_.partner_id_.ClearToEmpty();
  _impl_.title_.ClearToEmpty();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.header_ != nullptr);
      _impl_.header_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.subtitle_ != nullptr);
      _impl_.subtitle_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      ABSL_DCHECK(_impl_.background_color_ != nullptr);
      _impl_.background_color_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      ABSL_DCHECK(_impl_.created_at_ != nullptr);
      _impl_.created_at_->Clear();
    }
    if (cached_has_bits & 0x00000010u) {
      ABSL_DCHECK(_impl_.changed_at_ != nullptr);
      _impl_.changed_at_->Clear();
    }
    if (cached_has_bits & 0x00000020u) {
      ABSL_DCHECK(_impl_.permissions_ != nullptr);
      _impl_.permissions_->Clear();
    }
  }
  ::memset(&_impl_.type_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.status_type_) -
      reinterpret_cast<char*>(&_impl_.type_)) + sizeof(_impl_.status_type_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* App::_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) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // string partner_id = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_partner_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.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::multiapp::v1::App_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string title = 4 [(.google.api.field_behavior) = REQUIRED];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_title();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue header = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_header(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue subtitle = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_subtitle(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue background_color = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_background_color(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.StatusType status_type = 8 [(.google.api.field_behavior) = REQUIRED];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 64)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_status_type(static_cast<::keyapis::multiapp::v1::App_StatusType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.multiapp.v1.App.Link links = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 74)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_links(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string user_tags = 10 [(.google.api.field_behavior) = REQUIRED];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 82)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_user_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string app_tags = 11 [(.google.api.field_behavior) = REQUIRED];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 90)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_app_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp created_at = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_created_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp changed_at = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_changed_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.Permissions permissions = 14 [deprecated = true, (.google.api.field_visibility) = {
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_permissions(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.multiapp.v1.App.GrantType grant_types = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 122)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_grant_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 120) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_grant_types(static_cast<::keyapis::multiapp::v1::App_GrantType>(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:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

  // string id = 1;
  if (!this->_internal_id().empty()) {
    const std::string& _s = this->_internal_id();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.App.id");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

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

  // .keyapis.multiapp.v1.App.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);
  }

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

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

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

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

  // .keyapis.multiapp.v1.App.StatusType status_type = 8 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_status_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        8, this->_internal_status_type(), target);
  }

  // repeated .keyapis.multiapp.v1.App.Link links = 9;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_links_size()); i < n; i++) {
    const auto& repfield = this->_internal_links(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(9, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated string user_tags = 10 [(.google.api.field_behavior) = REQUIRED];
  for (int i = 0, n = this->_internal_user_tags_size(); i < n; ++i) {
    const auto& s = this->_internal_user_tags(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.App.user_tags");
    target = stream->WriteString(10, s, target);
  }

  // repeated string app_tags = 11 [(.google.api.field_behavior) = REQUIRED];
  for (int i = 0, n = this->_internal_app_tags_size(); i < n; ++i) {
    const auto& s = this->_internal_app_tags(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.App.app_tags");
    target = stream->WriteString(11, s, target);
  }

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

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

  // .keyapis.multiapp.v1.App.Permissions permissions = 14 [deprecated = true, (.google.api.field_visibility) = {
  if (cached_has_bits & 0x00000020u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(14, _Internal::permissions(this),
        _Internal::permissions(this).GetCachedSize(), target, stream);
  }

  // repeated .keyapis.multiapp.v1.App.GrantType grant_types = 15;
  {
    int byte_size = _impl_._grant_types_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(15, _internal_grant_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.multiapp.v1.App)
  return target;
}

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

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

  // repeated .keyapis.multiapp.v1.App.Link links = 9;
  total_size += 1UL * this->_internal_links_size();
  for (const auto& msg : this->_internal_links()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated string user_tags = 10 [(.google.api.field_behavior) = REQUIRED];
  total_size += 1 * ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_internal_user_tags().size());
  for (int i = 0, n = _internal_user_tags().size(); i < n; ++i) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        _internal_user_tags().Get(i));
  }

  // repeated string app_tags = 11 [(.google.api.field_behavior) = REQUIRED];
  total_size += 1 * ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_internal_app_tags().size());
  for (int i = 0, n = _internal_app_tags().size(); i < n; ++i) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        _internal_app_tags().Get(i));
  }

  // repeated .keyapis.multiapp.v1.App.GrantType grant_types = 15;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_grant_types_size());

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

  // string id = 1;
  if (!this->_internal_id().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_id());
  }

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

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

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    // .google.protobuf.StringValue header = 5;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.header_);
    }

    // .google.protobuf.StringValue subtitle = 6;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.subtitle_);
    }

    // .google.protobuf.StringValue background_color = 7;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.background_color_);
    }

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

    // .google.protobuf.Timestamp changed_at = 13;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.changed_at_);
    }

    // .keyapis.multiapp.v1.App.Permissions permissions = 14 [deprecated = true, (.google.api.field_visibility) = {
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.permissions_);
    }

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

  // .keyapis.multiapp.v1.App.StatusType status_type = 8 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_status_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_status_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 App::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const App*>(
      &from));
}

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

  _this->_internal_mutable_links()->MergeFrom(from._internal_links());
  _this->_internal_mutable_user_tags()->MergeFrom(from._internal_user_tags());
  _this->_internal_mutable_app_tags()->MergeFrom(from._internal_app_tags());
  _this->_internal_mutable_grant_types()->MergeFrom(from._internal_grant_types());
  if (!from._internal_id().empty()) {
    _this->_internal_set_id(from._internal_id());
  }
  if (!from._internal_partner_id().empty()) {
    _this->_internal_set_partner_id(from._internal_partner_id());
  }
  if (!from._internal_title().empty()) {
    _this->_internal_set_title(from._internal_title());
  }
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_header()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_header());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_subtitle()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_subtitle());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_background_color()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_background_color());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_internal_mutable_created_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_created_at());
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_internal_mutable_changed_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_changed_at());
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_internal_mutable_permissions()->::keyapis::multiapp::v1::App_Permissions::MergeFrom(
          from._internal_permissions());
    }
  }
  if (from._internal_type() != 0) {
    _this->_internal_set_type(from._internal_type());
  }
  if (from._internal_status_type() != 0) {
    _this->_internal_set_status_type(from._internal_status_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void App::InternalSwap(App* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _internal_mutable_links()->InternalSwap(other->_internal_mutable_links());
  _internal_mutable_user_tags()->InternalSwap(
      other->_internal_mutable_user_tags());
  _internal_mutable_app_tags()->InternalSwap(
      other->_internal_mutable_app_tags());
  _internal_mutable_grant_types()->InternalSwap(
      other->_internal_mutable_grant_types());
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, lhs_arena,
                                       &other->_impl_.id_, rhs_arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.partner_id_, lhs_arena,
                                       &other->_impl_.partner_id_, rhs_arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.title_, lhs_arena,
                                       &other->_impl_.title_, rhs_arena);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(App, _impl_.status_type_)
      + sizeof(App::_impl_.status_type_)
      - PROTOBUF_FIELD_OFFSET(App, _impl_.header_)>(
          reinterpret_cast<char*>(&_impl_.header_),
          reinterpret_cast<char*>(&other->_impl_.header_));
}

std::string App::GetTypeName() const {
  return "keyapis.multiapp.v1.App";
}

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

class AppLite_LinkLite::_Internal {
 public:
};

AppLite_LinkLite::AppLite_LinkLite(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.AppLite.LinkLite)
}
AppLite_LinkLite::AppLite_LinkLite(const AppLite_LinkLite& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  AppLite_LinkLite* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.packages_){from._impl_.packages_}
    , decltype(_impl_.url_) {}

    , decltype(_impl_.platform_type_) {}

    , decltype(_impl_.type_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.url_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.url_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_url().empty()) {
    _this->_impl_.url_.Set(from._internal_url(), _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.platform_type_, &from._impl_.platform_type_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.type_) -
    reinterpret_cast<char*>(&_impl_.platform_type_)) + sizeof(_impl_.type_));
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.AppLite.LinkLite)
}

inline void AppLite_LinkLite::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.packages_){arena}
    , decltype(_impl_.url_) {}

    , decltype(_impl_.platform_type_) { 0 }

    , decltype(_impl_.type_) { 0 }

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

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

inline void AppLite_LinkLite::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_packages()->~RepeatedPtrField();
  _impl_.url_.Destroy();
}

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

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

  _internal_mutable_packages()->Clear();
  _impl_.url_.ClearToEmpty();
  ::memset(&_impl_.platform_type_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.type_) -
      reinterpret_cast<char*>(&_impl_.platform_type_)) + sizeof(_impl_.type_));
  _internal_metadata_.Clear<std::string>();
}

const char* AppLite_LinkLite::_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.multiapp.v1.App.PlatformType platform_type = 1 [(.google.api.field_behavior) = REQUIRED];
      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_platform_type(static_cast<::keyapis::multiapp::v1::App_PlatformType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.Link.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::multiapp::v1::App_Link_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string url = 3 [(.google.api.field_behavior) = REQUIRED];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_url();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string packages = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_packages();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(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* AppLite_LinkLite::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.AppLite.LinkLite)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.multiapp.v1.App.PlatformType platform_type = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_platform_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this->_internal_platform_type(), target);
  }

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

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

  // repeated string packages = 4;
  for (int i = 0, n = this->_internal_packages_size(); i < n; ++i) {
    const auto& s = this->_internal_packages(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.AppLite.LinkLite.packages");
    target = stream->WriteString(4, s, target);
  }

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

::size_t AppLite_LinkLite::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.AppLite.LinkLite)
  ::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 string packages = 4;
  total_size += 1 * ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_internal_packages().size());
  for (int i = 0, n = _internal_packages().size(); i < n; ++i) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        _internal_packages().Get(i));
  }

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

  // .keyapis.multiapp.v1.App.PlatformType platform_type = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_platform_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_platform_type());
  }

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

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

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

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

  _this->_internal_mutable_packages()->MergeFrom(from._internal_packages());
  if (!from._internal_url().empty()) {
    _this->_internal_set_url(from._internal_url());
  }
  if (from._internal_platform_type() != 0) {
    _this->_internal_set_platform_type(from._internal_platform_type());
  }
  if (from._internal_type() != 0) {
    _this->_internal_set_type(from._internal_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string AppLite_LinkLite::GetTypeName() const {
  return "keyapis.multiapp.v1.AppLite.LinkLite";
}

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

class AppLite::_Internal {
 public:
  using HasBits = decltype(std::declval<AppLite>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(AppLite, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& header(const AppLite* msg);
  static void set_has_header(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& subtitle(const AppLite* msg);
  static void set_has_subtitle(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& background_color(const AppLite* msg);
  static void set_has_background_color(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::StringValue&
AppLite::_Internal::header(const AppLite* msg) {
  return *msg->_impl_.header_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
AppLite::_Internal::subtitle(const AppLite* msg) {
  return *msg->_impl_.subtitle_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
AppLite::_Internal::background_color(const AppLite* msg) {
  return *msg->_impl_.background_color_;
}
void AppLite::clear_header() {
  if (_impl_.header_ != nullptr) _impl_.header_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void AppLite::clear_subtitle() {
  if (_impl_.subtitle_ != nullptr) _impl_.subtitle_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
void AppLite::clear_background_color() {
  if (_impl_.background_color_ != nullptr) _impl_.background_color_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
AppLite::AppLite(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.AppLite)
}
AppLite::AppLite(const AppLite& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  AppLite* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.links_){from._impl_.links_}
    , decltype(_impl_.id_) {}

    , decltype(_impl_.title_) {}

    , decltype(_impl_.header_){nullptr}
    , decltype(_impl_.subtitle_){nullptr}
    , decltype(_impl_.background_color_){nullptr}
    , decltype(_impl_.status_type_) {}
  };

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_id().empty()) {
    _this->_impl_.id_.Set(from._internal_id(), _this->GetArenaForAllocation());
  }
  _impl_.title_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.title_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_title().empty()) {
    _this->_impl_.title_.Set(from._internal_title(), _this->GetArenaForAllocation());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.header_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.header_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000002u) != 0) {
    _this->_impl_.subtitle_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.subtitle_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000004u) != 0) {
    _this->_impl_.background_color_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.background_color_);
  }
  _this->_impl_.status_type_ = from._impl_.status_type_;
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.AppLite)
}

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

    , decltype(_impl_.title_) {}

    , decltype(_impl_.header_){nullptr}
    , decltype(_impl_.subtitle_){nullptr}
    , decltype(_impl_.background_color_){nullptr}
    , decltype(_impl_.status_type_) { 0 }

  };
  _impl_.id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.title_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.title_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

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

inline void AppLite::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_links()->~RepeatedPtrField();
  _impl_.id_.Destroy();
  _impl_.title_.Destroy();
  if (this != internal_default_instance()) delete _impl_.header_;
  if (this != internal_default_instance()) delete _impl_.subtitle_;
  if (this != internal_default_instance()) delete _impl_.background_color_;
}

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

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

  _internal_mutable_links()->Clear();
  _impl_.id_.ClearToEmpty();
  _impl_.title_.ClearToEmpty();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.header_ != nullptr);
      _impl_.header_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.subtitle_ != nullptr);
      _impl_.subtitle_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      ABSL_DCHECK(_impl_.background_color_ != nullptr);
      _impl_.background_color_->Clear();
    }
  }
  _impl_.status_type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* AppLite::_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) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // string title = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_title();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue header = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_header(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue subtitle = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_subtitle(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue background_color = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_background_color(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.StatusType status_type = 6 [(.google.api.field_behavior) = REQUIRED];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 48)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_status_type(static_cast<::keyapis::multiapp::v1::App_StatusType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.multiapp.v1.AppLite.LinkLite links = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 58)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_links(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<58>(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* AppLite::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.AppLite)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (!this->_internal_id().empty()) {
    const std::string& _s = this->_internal_id();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.AppLite.id");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

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

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

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

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

  // .keyapis.multiapp.v1.App.StatusType status_type = 6 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_status_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        6, this->_internal_status_type(), target);
  }

  // repeated .keyapis.multiapp.v1.AppLite.LinkLite links = 7;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_links_size()); i < n; i++) {
    const auto& repfield = this->_internal_links(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(7, repfield, repfield.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.multiapp.v1.AppLite)
  return target;
}

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

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

  // repeated .keyapis.multiapp.v1.AppLite.LinkLite links = 7;
  total_size += 1UL * this->_internal_links_size();
  for (const auto& msg : this->_internal_links()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string id = 1;
  if (!this->_internal_id().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_id());
  }

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

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    // .google.protobuf.StringValue header = 3;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.header_);
    }

    // .google.protobuf.StringValue subtitle = 4;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.subtitle_);
    }

    // .google.protobuf.StringValue background_color = 5;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.background_color_);
    }

  }
  // .keyapis.multiapp.v1.App.StatusType status_type = 6 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_status_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_status_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 AppLite::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const AppLite*>(
      &from));
}

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

  _this->_internal_mutable_links()->MergeFrom(from._internal_links());
  if (!from._internal_id().empty()) {
    _this->_internal_set_id(from._internal_id());
  }
  if (!from._internal_title().empty()) {
    _this->_internal_set_title(from._internal_title());
  }
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_header()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_header());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_subtitle()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_subtitle());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_background_color()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_background_color());
    }
  }
  if (from._internal_status_type() != 0) {
    _this->_internal_set_status_type(from._internal_status_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void AppLite::InternalSwap(AppLite* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _internal_mutable_links()->InternalSwap(other->_internal_mutable_links());
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, lhs_arena,
                                       &other->_impl_.id_, rhs_arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.title_, lhs_arena,
                                       &other->_impl_.title_, rhs_arena);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AppLite, _impl_.status_type_)
      + sizeof(AppLite::_impl_.status_type_)
      - PROTOBUF_FIELD_OFFSET(AppLite, _impl_.header_)>(
          reinterpret_cast<char*>(&_impl_.header_),
          reinterpret_cast<char*>(&other->_impl_.header_));
}

std::string AppLite::GetTypeName() const {
  return "keyapis.multiapp.v1.AppLite";
}

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

class AppFilter::_Internal {
 public:
  using HasBits = decltype(std::declval<AppFilter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(AppFilter, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& text(const AppFilter* msg);
  static void set_has_text(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::StringValue&
AppFilter::_Internal::text(const AppFilter* msg) {
  return *msg->_impl_.text_;
}
void AppFilter::clear_text() {
  if (_impl_.text_ != nullptr) _impl_.text_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
AppFilter::AppFilter(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.AppFilter)
}
AppFilter::AppFilter(const AppFilter& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  AppFilter* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.types_) { from._internal_types() }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.partner_ids_){from._impl_.partner_ids_}
    , decltype(_impl_.status_types_) { from._internal_status_types() }
    , /*decltype(_impl_._status_types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.user_tags_){from._impl_.user_tags_}
    , decltype(_impl_.app_tags_){from._impl_.app_tags_}
    , decltype(_impl_.text_){nullptr}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.text_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.text_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.AppFilter)
}

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

    , decltype(_impl_.partner_ids_){arena}
    , decltype(_impl_.status_types_) { arena }
    , /*decltype(_impl_._status_types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.user_tags_){arena}
    , decltype(_impl_.app_tags_){arena}
    , decltype(_impl_.text_){nullptr}
  };
}

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

inline void AppFilter::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_types()->~RepeatedField();
  _internal_mutable_partner_ids()->~RepeatedPtrField();
  _internal_mutable_status_types()->~RepeatedField();
  _internal_mutable_user_tags()->~RepeatedPtrField();
  _internal_mutable_app_tags()->~RepeatedPtrField();
  if (this != internal_default_instance()) delete _impl_.text_;
}

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

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

  _internal_mutable_types()->Clear();
  _internal_mutable_partner_ids()->Clear();
  _internal_mutable_status_types()->Clear();
  _internal_mutable_user_tags()->Clear();
  _internal_mutable_app_tags()->Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    ABSL_DCHECK(_impl_.text_ != nullptr);
    _impl_.text_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* AppFilter::_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) {
      // .google.protobuf.StringValue text = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_text(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.multiapp.v1.App.Type types = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 16) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_types(static_cast<::keyapis::multiapp::v1::App_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string partner_ids = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_partner_ids();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.multiapp.v1.App.StatusType status_types = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_status_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_status_types(static_cast<::keyapis::multiapp::v1::App_StatusType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string user_tags = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_user_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string app_tags = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 50)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_app_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(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* AppFilter::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.AppFilter)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

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

  // repeated string partner_ids = 3;
  for (int i = 0, n = this->_internal_partner_ids_size(); i < n; ++i) {
    const auto& s = this->_internal_partner_ids(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.AppFilter.partner_ids");
    target = stream->WriteString(3, s, target);
  }

  // repeated .keyapis.multiapp.v1.App.StatusType status_types = 4;
  {
    int byte_size = _impl_._status_types_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(4, _internal_status_types(),
                                       byte_size, target);
    }
  }

  // repeated string user_tags = 5;
  for (int i = 0, n = this->_internal_user_tags_size(); i < n; ++i) {
    const auto& s = this->_internal_user_tags(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.AppFilter.user_tags");
    target = stream->WriteString(5, s, target);
  }

  // repeated string app_tags = 6;
  for (int i = 0, n = this->_internal_app_tags_size(); i < n; ++i) {
    const auto& s = this->_internal_app_tags(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        s.data(), static_cast<int>(s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.AppFilter.app_tags");
    target = stream->WriteString(6, s, target);
  }

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

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

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

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

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

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

  // repeated .keyapis.multiapp.v1.App.StatusType status_types = 4;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_status_types_size());

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

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

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

  // .google.protobuf.StringValue text = 1;
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.text_);
  }

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

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

  _this->_internal_mutable_types()->MergeFrom(from._internal_types());
  _this->_internal_mutable_partner_ids()->MergeFrom(from._internal_partner_ids());
  _this->_internal_mutable_status_types()->MergeFrom(from._internal_status_types());
  _this->_internal_mutable_user_tags()->MergeFrom(from._internal_user_tags());
  _this->_internal_mutable_app_tags()->MergeFrom(from._internal_app_tags());
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_internal_mutable_text()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
        from._internal_text());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void AppFilter::InternalSwap(AppFilter* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _internal_mutable_types()->InternalSwap(
      other->_internal_mutable_types());
  _internal_mutable_partner_ids()->InternalSwap(
      other->_internal_mutable_partner_ids());
  _internal_mutable_status_types()->InternalSwap(
      other->_internal_mutable_status_types());
  _internal_mutable_user_tags()->InternalSwap(
      other->_internal_mutable_user_tags());
  _internal_mutable_app_tags()->InternalSwap(
      other->_internal_mutable_app_tags());
  swap(_impl_.text_, other->_impl_.text_);
}

std::string AppFilter::GetTypeName() const {
  return "keyapis.multiapp.v1.AppFilter";
}

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

class AppLiteFilter_AppLiteTag::_Internal {
 public:
  using HasBits = decltype(std::declval<AppLiteFilter_AppLiteTag>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(AppLiteFilter_AppLiteTag, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& app_name(const AppLiteFilter_AppLiteTag* msg);
  static void set_has_app_name(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::StringValue&
AppLiteFilter_AppLiteTag::_Internal::app_name(const AppLiteFilter_AppLiteTag* msg) {
  return *msg->_impl_.app_name_;
}
void AppLiteFilter_AppLiteTag::clear_app_name() {
  if (_impl_.app_name_ != nullptr) _impl_.app_name_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
AppLiteFilter_AppLiteTag::AppLiteFilter_AppLiteTag(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.AppLiteFilter.AppLiteTag)
}
AppLiteFilter_AppLiteTag::AppLiteFilter_AppLiteTag(const AppLiteFilter_AppLiteTag& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  AppLiteFilter_AppLiteTag* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.app_name_){nullptr}
    , decltype(_impl_.platform_type_) {}
  };

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.app_name_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.app_name_);
  }
  _this->_impl_.platform_type_ = from._impl_.platform_type_;
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.AppLiteFilter.AppLiteTag)
}

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

  };
}

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

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

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

void AppLiteFilter_AppLiteTag::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.AppLiteFilter.AppLiteTag)
  ::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_.app_name_ != nullptr);
    _impl_.app_name_->Clear();
  }
  _impl_.platform_type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* AppLiteFilter_AppLiteTag::_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.multiapp.v1.App.PlatformType platform_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_platform_type(static_cast<::keyapis::multiapp::v1::App_PlatformType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue app_name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_app_name(), 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* AppLiteFilter_AppLiteTag::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.AppLiteFilter.AppLiteTag)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.multiapp.v1.App.PlatformType platform_type = 1;
  if (this->_internal_platform_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this->_internal_platform_type(), target);
  }

  cached_has_bits = _impl_._has_bits_[0];
  // .google.protobuf.StringValue app_name = 2;
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::app_name(this),
        _Internal::app_name(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.multiapp.v1.AppLiteFilter.AppLiteTag)
  return target;
}

::size_t AppLiteFilter_AppLiteTag::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.AppLiteFilter.AppLiteTag)
  ::size_t total_size = 0;

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

  // .google.protobuf.StringValue app_name = 2;
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.app_name_);
  }

  // .keyapis.multiapp.v1.App.PlatformType platform_type = 1;
  if (this->_internal_platform_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_platform_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 AppLiteFilter_AppLiteTag::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const AppLiteFilter_AppLiteTag*>(
      &from));
}

void AppLiteFilter_AppLiteTag::MergeFrom(const AppLiteFilter_AppLiteTag& from) {
  AppLiteFilter_AppLiteTag* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.multiapp.v1.AppLiteFilter.AppLiteTag)
  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_app_name()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
        from._internal_app_name());
  }
  if (from._internal_platform_type() != 0) {
    _this->_internal_set_platform_type(from._internal_platform_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void AppLiteFilter_AppLiteTag::InternalSwap(AppLiteFilter_AppLiteTag* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AppLiteFilter_AppLiteTag, _impl_.platform_type_)
      + sizeof(AppLiteFilter_AppLiteTag::_impl_.platform_type_)
      - PROTOBUF_FIELD_OFFSET(AppLiteFilter_AppLiteTag, _impl_.app_name_)>(
          reinterpret_cast<char*>(&_impl_.app_name_),
          reinterpret_cast<char*>(&other->_impl_.app_name_));
}

std::string AppLiteFilter_AppLiteTag::GetTypeName() const {
  return "keyapis.multiapp.v1.AppLiteFilter.AppLiteTag";
}

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

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

const ::keyapis::multiapp::v1::AppLiteFilter_AppLiteTag&
AppLiteFilter::_Internal::app_lite_tag(const AppLiteFilter* msg) {
  return *msg->_impl_.app_lite_tag_;
}
AppLiteFilter::AppLiteFilter(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.AppLiteFilter)
}
AppLiteFilter::AppLiteFilter(const AppLiteFilter& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  AppLiteFilter* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.types_) { from._internal_types() }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.user_tags_){from._impl_.user_tags_}
    , decltype(_impl_.app_lite_tag_){nullptr}};

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

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

    , decltype(_impl_.user_tags_){arena}
    , decltype(_impl_.app_lite_tag_){nullptr}
  };
}

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

inline void AppLiteFilter::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_types()->~RepeatedField();
  _internal_mutable_user_tags()->~RepeatedPtrField();
  if (this != internal_default_instance()) delete _impl_.app_lite_tag_;
}

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

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

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

const char* AppLiteFilter::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .keyapis.multiapp.v1.App.Type types = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 8) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_types(static_cast<::keyapis::multiapp::v1::App_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string user_tags = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_user_tags();
            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;
      // .keyapis.multiapp.v1.AppLiteFilter.AppLiteTag app_lite_tag = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_app_lite_tag(), 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* AppLiteFilter::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.AppLiteFilter)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

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

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.multiapp.v1.AppLiteFilter.AppLiteTag app_lite_tag = 3;
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, _Internal::app_lite_tag(this),
        _Internal::app_lite_tag(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.multiapp.v1.AppLiteFilter)
  return target;
}

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

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

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

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

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

  // .keyapis.multiapp.v1.AppLiteFilter.AppLiteTag app_lite_tag = 3;
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.app_lite_tag_);
  }

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

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

  _this->_internal_mutable_types()->MergeFrom(from._internal_types());
  _this->_internal_mutable_user_tags()->MergeFrom(from._internal_user_tags());
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_internal_mutable_app_lite_tag()->::keyapis::multiapp::v1::AppLiteFilter_AppLiteTag::MergeFrom(
        from._internal_app_lite_tag());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string AppLiteFilter::GetTypeName() const {
  return "keyapis.multiapp.v1.AppLiteFilter";
}

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

class AppPaging::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

std::string AppPaging::GetTypeName() const {
  return "keyapis.multiapp.v1.AppPaging";
}

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

class AppLitePaging::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

std::string AppLitePaging::GetTypeName() const {
  return "keyapis.multiapp.v1.AppLitePaging";
}

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

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

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

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

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

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

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

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

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

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

const char* PostAppRequest::_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.multiapp.v1.App data = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_data(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t PostAppRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.PostAppRequest)
  ::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.multiapp.v1.App data = 1 [(.google.api.field_behavior) = REQUIRED];
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.data_);
  }

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

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

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

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

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

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

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

std::string PostAppRequest::GetTypeName() const {
  return "keyapis.multiapp.v1.PostAppRequest";
}

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

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

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

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

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

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

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

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

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


void PostAppResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.PostAppResponse.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* PostAppResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.App.SavingError saving = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_saving(), 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* PostAppResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.PostAppResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::validation(this),
          _Internal::validation(this).GetCachedSize(), target, stream);
      break;
    }
    case kSaving: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::saving(this),
          _Internal::saving(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.multiapp.v1.PostAppResponse.Error)
  return target;
}

::size_t PostAppResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.PostAppResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    // .keyapis.multiapp.v1.App.SavingError saving = 2;
    case kSaving: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.saving_);
      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 PostAppResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PostAppResponse_Error*>(
      &from));
}

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

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

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

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

void PostAppResponse_Error::InternalSwap(PostAppResponse_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 PostAppResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.PostAppResponse.Error";
}

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

class PostAppResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::multiapp::v1::PostAppResponse, _impl_._oneof_case_);
  static const ::keyapis::multiapp::v1::App& data(const PostAppResponse* msg);
  static const ::keyapis::multiapp::v1::PostAppResponse_Error& error(const PostAppResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

class GetAppRequest::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void GetAppRequest::InternalSwap(GetAppRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, lhs_arena,
                                       &other->_impl_.id_, rhs_arena);
}

std::string GetAppRequest::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppRequest";
}

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

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

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

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

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

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

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

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

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


void GetAppResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppResponse.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* GetAppResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t GetAppResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

void GetAppResponse_Error::InternalSwap(GetAppResponse_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 GetAppResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppResponse.Error";
}

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

class GetAppResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::multiapp::v1::GetAppResponse, _impl_._oneof_case_);
  static const ::keyapis::multiapp::v1::App& data(const GetAppResponse* msg);
  static const ::keyapis::multiapp::v1::GetAppResponse_Error& error(const GetAppResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

class GetAppLiteRequest::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void GetAppLiteRequest::InternalSwap(GetAppLiteRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, lhs_arena,
                                       &other->_impl_.id_, rhs_arena);
}

std::string GetAppLiteRequest::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppLiteRequest";
}

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

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

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

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

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

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

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

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

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


void GetAppLiteResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppLiteResponse.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* GetAppLiteResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t GetAppLiteResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppLiteResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

void GetAppLiteResponse_Error::InternalSwap(GetAppLiteResponse_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 GetAppLiteResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppLiteResponse.Error";
}

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

class GetAppLiteResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::multiapp::v1::GetAppLiteResponse, _impl_._oneof_case_);
  static const ::keyapis::multiapp::v1::AppLite& data(const GetAppLiteResponse* msg);
  static const ::keyapis::multiapp::v1::GetAppLiteResponse_Error& error(const GetAppLiteResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.multiapp.v1.AppFilter 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.multiapp.v1.AppPaging 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.multiapp.v1.GetAppListRequest)
  return target;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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


void GetAppListResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppListResponse.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* GetAppListResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t GetAppListResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppListResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

void GetAppListResponse_Error::InternalSwap(GetAppListResponse_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 GetAppListResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppListResponse.Error";
}

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

class GetAppListResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::multiapp::v1::GetAppListResponse, _impl_._oneof_case_);
  static const ::keyapis::multiapp::v1::App& data(const GetAppListResponse* msg);
  static const ::keyapis::multiapp::v1::GetAppListResponse_Error& error(const GetAppListResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.multiapp.v1.AppLiteFilter 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.multiapp.v1.AppLitePaging 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.multiapp.v1.GetAppLiteListRequest)
  return target;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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


void GetAppLiteListResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppLiteListResponse.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* GetAppLiteListResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t GetAppLiteListResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppLiteListResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

void GetAppLiteListResponse_Error::InternalSwap(GetAppLiteListResponse_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 GetAppLiteListResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppLiteListResponse.Error";
}

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

class GetAppLiteListResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::multiapp::v1::GetAppLiteListResponse, _impl_._oneof_case_);
  static const ::keyapis::multiapp::v1::AppLite& data(const GetAppLiteListResponse* msg);
  static const ::keyapis::multiapp::v1::GetAppLiteListResponse_Error& error(const GetAppLiteListResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


void GetAppLiteCountResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppLiteCountResponse.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* GetAppLiteCountResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t GetAppLiteCountResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppLiteCountResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

void GetAppLiteCountResponse_Error::InternalSwap(GetAppLiteCountResponse_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 GetAppLiteCountResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppLiteCountResponse.Error";
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


void GetAppCountResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppCountResponse.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* GetAppCountResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t GetAppCountResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppCountResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

void GetAppCountResponse_Error::InternalSwap(GetAppCountResponse_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 GetAppCountResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppCountResponse.Error";
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class GetAppCodeRequest::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void GetAppCodeRequest::InternalSwap(GetAppCodeRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, lhs_arena,
                                       &other->_impl_.id_, rhs_arena);
}

std::string GetAppCodeRequest::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppCodeRequest";
}

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

class GetAppCodeResponse_Error_PartnerKeyDoesNotExist::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

std::string GetAppCodeResponse_Error_PartnerKeyDoesNotExist::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppCodeResponse.Error.PartnerKeyDoesNotExist";
}

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

class GetAppCodeResponse_Error_AppIsInactive::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

std::string GetAppCodeResponse_Error_AppIsInactive::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppCodeResponse.Error.AppIsInactive";
}

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

class GetAppCodeResponse_Error::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::multiapp::v1::GetAppCodeResponse_Error, _impl_._oneof_case_);
  static const ::keyapis::multiapp::v1::ValidationError& validation(const GetAppCodeResponse_Error* msg);
  static const ::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist& partner_key_does_not_exist(const GetAppCodeResponse_Error* msg);
  static const ::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive& app_is_inactive(const GetAppCodeResponse_Error* msg);
};

const ::keyapis::multiapp::v1::ValidationError&
GetAppCodeResponse_Error::_Internal::validation(const GetAppCodeResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
const ::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist&
GetAppCodeResponse_Error::_Internal::partner_key_does_not_exist(const GetAppCodeResponse_Error* msg) {
  return *msg->_impl_.reason_.partner_key_does_not_exist_;
}
const ::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive&
GetAppCodeResponse_Error::_Internal::app_is_inactive(const GetAppCodeResponse_Error* msg) {
  return *msg->_impl_.reason_.app_is_inactive_;
}
void GetAppCodeResponse_Error::set_allocated_validation(::keyapis::multiapp::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.multiapp.v1.GetAppCodeResponse.Error.validation)
}
void GetAppCodeResponse_Error::set_allocated_partner_key_does_not_exist(::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist* partner_key_does_not_exist) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (partner_key_does_not_exist) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(partner_key_does_not_exist);
    if (message_arena != submessage_arena) {
      partner_key_does_not_exist = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, partner_key_does_not_exist, submessage_arena);
    }
    set_has_partner_key_does_not_exist();
    _impl_.reason_.partner_key_does_not_exist_ = partner_key_does_not_exist;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.multiapp.v1.GetAppCodeResponse.Error.partner_key_does_not_exist)
}
void GetAppCodeResponse_Error::set_allocated_app_is_inactive(::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive* app_is_inactive) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (app_is_inactive) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(app_is_inactive);
    if (message_arena != submessage_arena) {
      app_is_inactive = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, app_is_inactive, submessage_arena);
    }
    set_has_app_is_inactive();
    _impl_.reason_.app_is_inactive_ = app_is_inactive;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.multiapp.v1.GetAppCodeResponse.Error.app_is_inactive)
}
GetAppCodeResponse_Error::GetAppCodeResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.GetAppCodeResponse.Error)
}
GetAppCodeResponse_Error::GetAppCodeResponse_Error(const GetAppCodeResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetAppCodeResponse_Error* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.reason_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::multiapp::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case kPartnerKeyDoesNotExist: {
      _this->_internal_mutable_partner_key_does_not_exist()->::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist::MergeFrom(
          from._internal_partner_key_does_not_exist());
      break;
    }
    case kAppIsInactive: {
      _this->_internal_mutable_app_is_inactive()->::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive::MergeFrom(
          from._internal_app_is_inactive());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.GetAppCodeResponse.Error)
}

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

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

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

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

void GetAppCodeResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.multiapp.v1.GetAppCodeResponse.Error)
  switch (reason_case()) {
    case kValidation: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.validation_;
      }
      break;
    }
    case kPartnerKeyDoesNotExist: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.partner_key_does_not_exist_;
      }
      break;
    }
    case kAppIsInactive: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.reason_.app_is_inactive_;
      }
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}


void GetAppCodeResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppCodeResponse.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* GetAppCodeResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.GetAppCodeResponse.Error.PartnerKeyDoesNotExist partner_key_does_not_exist = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_partner_key_does_not_exist(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.GetAppCodeResponse.Error.AppIsInactive app_is_inactive = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_app_is_inactive(), 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* GetAppCodeResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.GetAppCodeResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (reason_case()) {
    case kValidation: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, _Internal::validation(this),
          _Internal::validation(this).GetCachedSize(), target, stream);
      break;
    }
    case kPartnerKeyDoesNotExist: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::partner_key_does_not_exist(this),
          _Internal::partner_key_does_not_exist(this).GetCachedSize(), target, stream);
      break;
    }
    case kAppIsInactive: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, _Internal::app_is_inactive(this),
          _Internal::app_is_inactive(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.multiapp.v1.GetAppCodeResponse.Error)
  return target;
}

::size_t GetAppCodeResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppCodeResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    // .keyapis.multiapp.v1.GetAppCodeResponse.Error.PartnerKeyDoesNotExist partner_key_does_not_exist = 2;
    case kPartnerKeyDoesNotExist: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.partner_key_does_not_exist_);
      break;
    }
    // .keyapis.multiapp.v1.GetAppCodeResponse.Error.AppIsInactive app_is_inactive = 3;
    case kAppIsInactive: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.app_is_inactive_);
      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 GetAppCodeResponse_Error::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetAppCodeResponse_Error*>(
      &from));
}

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

  switch (from.reason_case()) {
    case kValidation: {
      _this->_internal_mutable_validation()->::keyapis::multiapp::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case kPartnerKeyDoesNotExist: {
      _this->_internal_mutable_partner_key_does_not_exist()->::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist::MergeFrom(
          from._internal_partner_key_does_not_exist());
      break;
    }
    case kAppIsInactive: {
      _this->_internal_mutable_app_is_inactive()->::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive::MergeFrom(
          from._internal_app_is_inactive());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetAppCodeResponse_Error::InternalSwap(GetAppCodeResponse_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 GetAppCodeResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.GetAppCodeResponse.Error";
}

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

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

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

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

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

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

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

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


void GetAppCodeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.GetAppCodeResponse)
  ::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* GetAppCodeResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_data();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.multiapp.v1.GetAppCodeResponse.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* GetAppCodeResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.multiapp.v1.GetAppCodeResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (type_case()) {
    case kData: {
      const std::string& _s = this->_internal_data();
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.multiapp.v1.GetAppCodeResponse.data");
      target = stream->WriteStringMaybeAliased(1, _s, 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.multiapp.v1.GetAppCodeResponse)
  return target;
}

::size_t GetAppCodeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.GetAppCodeResponse)
  ::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()) {
    // string data = 1;
    case kData: {
      total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                      this->_internal_data());
      break;
    }
    // .keyapis.multiapp.v1.GetAppCodeResponse.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 GetAppCodeResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetAppCodeResponse*>(
      &from));
}

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

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

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

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

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

class DeleteAppRequest::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void DeleteAppRequest::InternalSwap(DeleteAppRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, lhs_arena,
                                       &other->_impl_.id_, rhs_arena);
}

std::string DeleteAppRequest::GetTypeName() const {
  return "keyapis.multiapp.v1.DeleteAppRequest";
}

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

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

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

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

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

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

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

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

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


void DeleteAppResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.DeleteAppResponse.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* DeleteAppResponse_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.multiapp.v1.ValidationError validation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_validation(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t DeleteAppResponse_Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.DeleteAppResponse.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.multiapp.v1.ValidationError validation = 1;
    case kValidation: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.reason_.validation_);
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

void DeleteAppResponse_Error::InternalSwap(DeleteAppResponse_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 DeleteAppResponse_Error::GetTypeName() const {
  return "keyapis.multiapp.v1.DeleteAppResponse.Error";
}

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

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

const ::keyapis::multiapp::v1::DeleteAppResponse_Error&
DeleteAppResponse::_Internal::error(const DeleteAppResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void DeleteAppResponse::set_allocated_error(::keyapis::multiapp::v1::DeleteAppResponse_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.multiapp.v1.DeleteAppResponse.error)
}
DeleteAppResponse::DeleteAppResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.multiapp.v1.DeleteAppResponse)
}
DeleteAppResponse::DeleteAppResponse(const DeleteAppResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  DeleteAppResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

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

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

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

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

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

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


void DeleteAppResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.multiapp.v1.DeleteAppResponse)
  ::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* DeleteAppResponse::_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.multiapp.v1.DeleteAppResponse.Error error = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_error(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

::size_t DeleteAppResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.multiapp.v1.DeleteAppResponse)
  ::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.multiapp.v1.DeleteAppResponse.Error error = 1;
    case kError: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.error_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size();
  }
  int cached_size = ::_pbi::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

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

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

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

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

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

class ValidationError::_Internal {
 public:
};

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

    , decltype(_impl_.message_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.path_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.path_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_path().empty()) {
    _this->_impl_.path_.Set(from._internal_path(), _this->GetArenaForAllocation());
  }
  _impl_.message_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.message_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_message().empty()) {
    _this->_impl_.message_.Set(from._internal_message(), _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.multiapp.v1.ValidationError)
}

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

    , decltype(_impl_.message_) {}

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

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

inline void ValidationError::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.path_.Destroy();
  _impl_.message_.Destroy();
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  if (!from._internal_path().empty()) {
    _this->_internal_set_path(from._internal_path());
  }
  if (!from._internal_message().empty()) {
    _this->_internal_set_message(from._internal_message());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void ValidationError::InternalSwap(ValidationError* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.path_, lhs_arena,
                                       &other->_impl_.path_, rhs_arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.message_, lhs_arena,
                                       &other->_impl_.message_, rhs_arena);
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace multiapp
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::App_Link*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::App_Link >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::App_Link >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::App_Permissions*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::App_Permissions >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::App_Permissions >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::App_SavingError_Conflict*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::App_SavingError_Conflict >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::App_SavingError_Conflict >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::App_SavingError_PartnerIsNotExist >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::App_SavingError_PartnerIsDeleted >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::App_SavingError*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::App_SavingError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::App_SavingError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::App*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::App >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::App >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::AppLite_LinkLite*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::AppLite_LinkLite >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::AppLite_LinkLite >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::AppLite*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::AppLite >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::AppLite >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::AppFilter*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::AppFilter >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::AppFilter >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::AppLiteFilter_AppLiteTag*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::AppLiteFilter_AppLiteTag >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::AppLiteFilter_AppLiteTag >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::AppLiteFilter*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::AppLiteFilter >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::AppLiteFilter >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::AppPaging*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::AppPaging >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::AppPaging >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::AppLitePaging*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::AppLitePaging >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::AppLitePaging >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::PostAppRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::PostAppRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::PostAppRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::PostAppResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::PostAppResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::PostAppResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::PostAppResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::PostAppResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::PostAppResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppListRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppListResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppListResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppListResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppListResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteListRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteListResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteListResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteListResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteListResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteCountRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteCountRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteCountRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteCountResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteCountResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteCountResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppLiteCountResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppLiteCountResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppLiteCountResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCountRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCountRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCountRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCountResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCountResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCountResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCountResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCountResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCountResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCodeRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCodeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCodeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCodeResponse_Error_PartnerKeyDoesNotExist >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCodeResponse_Error_AppIsInactive >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCodeResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCodeResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCodeResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::GetAppCodeResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::GetAppCodeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::GetAppCodeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::DeleteAppRequest*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::DeleteAppRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::DeleteAppRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::DeleteAppResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::DeleteAppResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::DeleteAppResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::DeleteAppResponse*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::DeleteAppResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::DeleteAppResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::multiapp::v1::ValidationError*
Arena::CreateMaybeMessage< ::keyapis::multiapp::v1::ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::multiapp::v1::ValidationError >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
