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

#include "keyapis/access_control/v1/keyapis_access_control_sync_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 access_control {
namespace v1 {
template <typename>
PROTOBUF_CONSTEXPR BuildingSync::BuildingSync(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.city_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

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

  , /*decltype(_impl_.area_)*/nullptr
  , /*decltype(_impl_.area_orpon_)*/nullptr
  , /*decltype(_impl_.area_kladr_)*/nullptr
  , /*decltype(_impl_.capital_marker_)*/nullptr
  , /*decltype(_impl_.city_kladr_)*/nullptr
  , /*decltype(_impl_.kladr_)*/nullptr
  , /*decltype(_impl_.fias_level_)*/nullptr
  , /*decltype(_impl_.fias_actuality_state_)*/nullptr
  , /*decltype(_impl_.geo_lat_)*/nullptr
  , /*decltype(_impl_.geo_lon_)*/nullptr
  , /*decltype(_impl_.okato_)*/nullptr
  , /*decltype(_impl_.oktmo_)*/nullptr
  , /*decltype(_impl_.postal_code_)*/nullptr
  , /*decltype(_impl_.region_)*/nullptr
  , /*decltype(_impl_.region_kladr_)*/nullptr
  , /*decltype(_impl_.street_kladr_)*/nullptr
  , /*decltype(_impl_.street_orpon_)*/nullptr
  , /*decltype(_impl_.house_kladr_)*/nullptr
  , /*decltype(_impl_.orpon_)*/ ::int64_t{0}

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

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

  , /*decltype(_impl_.id_)*/ 0
} {}
struct BuildingSyncDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BuildingSyncDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BuildingSyncDefaultTypeInternal() {}
  union {
    BuildingSync _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BuildingSyncDefaultTypeInternal _BuildingSync_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostSyncBuildingRequest::PostSyncBuildingRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostSyncBuildingRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostSyncBuildingRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostSyncBuildingRequestDefaultTypeInternal() {}
  union {
    PostSyncBuildingRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostSyncBuildingRequestDefaultTypeInternal _PostSyncBuildingRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostSyncBuildingResponse_Error::PostSyncBuildingResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostSyncBuildingResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostSyncBuildingResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostSyncBuildingResponse_ErrorDefaultTypeInternal() {}
  union {
    PostSyncBuildingResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostSyncBuildingResponse_ErrorDefaultTypeInternal _PostSyncBuildingResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostSyncBuildingResponse::PostSyncBuildingResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostSyncBuildingResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostSyncBuildingResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostSyncBuildingResponseDefaultTypeInternal() {}
  union {
    PostSyncBuildingResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostSyncBuildingResponseDefaultTypeInternal _PostSyncBuildingResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetSyncBuildingsRequest::GetSyncBuildingsRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.last_sync_before_at_)*/nullptr
  , /*decltype(_impl_.batch_size_)*/ 0
} {}
struct GetSyncBuildingsRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetSyncBuildingsRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetSyncBuildingsRequestDefaultTypeInternal() {}
  union {
    GetSyncBuildingsRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetSyncBuildingsRequestDefaultTypeInternal _GetSyncBuildingsRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetSyncBuildingsResponse_BuildingList::GetSyncBuildingsResponse_BuildingList(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.buildings_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct GetSyncBuildingsResponse_BuildingListDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetSyncBuildingsResponse_BuildingListDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetSyncBuildingsResponse_BuildingListDefaultTypeInternal() {}
  union {
    GetSyncBuildingsResponse_BuildingList _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetSyncBuildingsResponse_BuildingListDefaultTypeInternal _GetSyncBuildingsResponse_BuildingList_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetSyncBuildingsResponse_Error::GetSyncBuildingsResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetSyncBuildingsResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetSyncBuildingsResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetSyncBuildingsResponse_ErrorDefaultTypeInternal() {}
  union {
    GetSyncBuildingsResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetSyncBuildingsResponse_ErrorDefaultTypeInternal _GetSyncBuildingsResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetSyncBuildingsResponse::GetSyncBuildingsResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetSyncBuildingsResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetSyncBuildingsResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetSyncBuildingsResponseDefaultTypeInternal() {}
  union {
    GetSyncBuildingsResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetSyncBuildingsResponseDefaultTypeInternal _GetSyncBuildingsResponse_default_instance_;
}  // namespace v1
}  // namespace access_control
}  // namespace keyapis
namespace keyapis {
namespace access_control {
namespace v1 {
// ===================================================================

class BuildingSync::_Internal {
 public:
  using HasBits = decltype(std::declval<BuildingSync>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(BuildingSync, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& area(const BuildingSync* msg);
  static void set_has_area(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int64Value& area_orpon(const BuildingSync* msg);
  static void set_has_area_orpon(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& area_kladr(const BuildingSync* msg);
  static void set_has_area_kladr(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& capital_marker(const BuildingSync* msg);
  static void set_has_capital_marker(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& city_kladr(const BuildingSync* msg);
  static void set_has_city_kladr(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& kladr(const BuildingSync* msg);
  static void set_has_kladr(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& fias_level(const BuildingSync* msg);
  static void set_has_fias_level(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& fias_actuality_state(const BuildingSync* msg);
  static void set_has_fias_actuality_state(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::DoubleValue& geo_lat(const BuildingSync* msg);
  static void set_has_geo_lat(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::DoubleValue& geo_lon(const BuildingSync* msg);
  static void set_has_geo_lon(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int64Value& okato(const BuildingSync* msg);
  static void set_has_okato(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int64Value& oktmo(const BuildingSync* msg);
  static void set_has_oktmo(HasBits* has_bits) {
    (*has_bits)[0] |= 2048u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& postal_code(const BuildingSync* msg);
  static void set_has_postal_code(HasBits* has_bits) {
    (*has_bits)[0] |= 4096u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& region(const BuildingSync* msg);
  static void set_has_region(HasBits* has_bits) {
    (*has_bits)[0] |= 8192u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& region_kladr(const BuildingSync* msg);
  static void set_has_region_kladr(HasBits* has_bits) {
    (*has_bits)[0] |= 16384u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& street_kladr(const BuildingSync* msg);
  static void set_has_street_kladr(HasBits* has_bits) {
    (*has_bits)[0] |= 32768u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int64Value& street_orpon(const BuildingSync* msg);
  static void set_has_street_orpon(HasBits* has_bits) {
    (*has_bits)[0] |= 65536u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& house_kladr(const BuildingSync* msg);
  static void set_has_house_kladr(HasBits* has_bits) {
    (*has_bits)[0] |= 131072u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::area(const BuildingSync* msg) {
  return *msg->_impl_.area_;
}
const ::PROTOBUF_NAMESPACE_ID::Int64Value&
BuildingSync::_Internal::area_orpon(const BuildingSync* msg) {
  return *msg->_impl_.area_orpon_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::area_kladr(const BuildingSync* msg) {
  return *msg->_impl_.area_kladr_;
}
const ::PROTOBUF_NAMESPACE_ID::Int32Value&
BuildingSync::_Internal::capital_marker(const BuildingSync* msg) {
  return *msg->_impl_.capital_marker_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::city_kladr(const BuildingSync* msg) {
  return *msg->_impl_.city_kladr_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::kladr(const BuildingSync* msg) {
  return *msg->_impl_.kladr_;
}
const ::PROTOBUF_NAMESPACE_ID::Int32Value&
BuildingSync::_Internal::fias_level(const BuildingSync* msg) {
  return *msg->_impl_.fias_level_;
}
const ::PROTOBUF_NAMESPACE_ID::Int32Value&
BuildingSync::_Internal::fias_actuality_state(const BuildingSync* msg) {
  return *msg->_impl_.fias_actuality_state_;
}
const ::PROTOBUF_NAMESPACE_ID::DoubleValue&
BuildingSync::_Internal::geo_lat(const BuildingSync* msg) {
  return *msg->_impl_.geo_lat_;
}
const ::PROTOBUF_NAMESPACE_ID::DoubleValue&
BuildingSync::_Internal::geo_lon(const BuildingSync* msg) {
  return *msg->_impl_.geo_lon_;
}
const ::PROTOBUF_NAMESPACE_ID::Int64Value&
BuildingSync::_Internal::okato(const BuildingSync* msg) {
  return *msg->_impl_.okato_;
}
const ::PROTOBUF_NAMESPACE_ID::Int64Value&
BuildingSync::_Internal::oktmo(const BuildingSync* msg) {
  return *msg->_impl_.oktmo_;
}
const ::PROTOBUF_NAMESPACE_ID::Int32Value&
BuildingSync::_Internal::postal_code(const BuildingSync* msg) {
  return *msg->_impl_.postal_code_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::region(const BuildingSync* msg) {
  return *msg->_impl_.region_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::region_kladr(const BuildingSync* msg) {
  return *msg->_impl_.region_kladr_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::street_kladr(const BuildingSync* msg) {
  return *msg->_impl_.street_kladr_;
}
const ::PROTOBUF_NAMESPACE_ID::Int64Value&
BuildingSync::_Internal::street_orpon(const BuildingSync* msg) {
  return *msg->_impl_.street_orpon_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BuildingSync::_Internal::house_kladr(const BuildingSync* msg) {
  return *msg->_impl_.house_kladr_;
}
void BuildingSync::clear_area() {
  if (_impl_.area_ != nullptr) _impl_.area_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void BuildingSync::clear_area_orpon() {
  if (_impl_.area_orpon_ != nullptr) _impl_.area_orpon_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
void BuildingSync::clear_area_kladr() {
  if (_impl_.area_kladr_ != nullptr) _impl_.area_kladr_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
void BuildingSync::clear_capital_marker() {
  if (_impl_.capital_marker_ != nullptr) _impl_.capital_marker_->Clear();
  _impl_._has_bits_[0] &= ~0x00000008u;
}
void BuildingSync::clear_city_kladr() {
  if (_impl_.city_kladr_ != nullptr) _impl_.city_kladr_->Clear();
  _impl_._has_bits_[0] &= ~0x00000010u;
}
void BuildingSync::clear_kladr() {
  if (_impl_.kladr_ != nullptr) _impl_.kladr_->Clear();
  _impl_._has_bits_[0] &= ~0x00000020u;
}
void BuildingSync::clear_fias_level() {
  if (_impl_.fias_level_ != nullptr) _impl_.fias_level_->Clear();
  _impl_._has_bits_[0] &= ~0x00000040u;
}
void BuildingSync::clear_fias_actuality_state() {
  if (_impl_.fias_actuality_state_ != nullptr) _impl_.fias_actuality_state_->Clear();
  _impl_._has_bits_[0] &= ~0x00000080u;
}
void BuildingSync::clear_geo_lat() {
  if (_impl_.geo_lat_ != nullptr) _impl_.geo_lat_->Clear();
  _impl_._has_bits_[0] &= ~0x00000100u;
}
void BuildingSync::clear_geo_lon() {
  if (_impl_.geo_lon_ != nullptr) _impl_.geo_lon_->Clear();
  _impl_._has_bits_[0] &= ~0x00000200u;
}
void BuildingSync::clear_okato() {
  if (_impl_.okato_ != nullptr) _impl_.okato_->Clear();
  _impl_._has_bits_[0] &= ~0x00000400u;
}
void BuildingSync::clear_oktmo() {
  if (_impl_.oktmo_ != nullptr) _impl_.oktmo_->Clear();
  _impl_._has_bits_[0] &= ~0x00000800u;
}
void BuildingSync::clear_postal_code() {
  if (_impl_.postal_code_ != nullptr) _impl_.postal_code_->Clear();
  _impl_._has_bits_[0] &= ~0x00001000u;
}
void BuildingSync::clear_region() {
  if (_impl_.region_ != nullptr) _impl_.region_->Clear();
  _impl_._has_bits_[0] &= ~0x00002000u;
}
void BuildingSync::clear_region_kladr() {
  if (_impl_.region_kladr_ != nullptr) _impl_.region_kladr_->Clear();
  _impl_._has_bits_[0] &= ~0x00004000u;
}
void BuildingSync::clear_street_kladr() {
  if (_impl_.street_kladr_ != nullptr) _impl_.street_kladr_->Clear();
  _impl_._has_bits_[0] &= ~0x00008000u;
}
void BuildingSync::clear_street_orpon() {
  if (_impl_.street_orpon_ != nullptr) _impl_.street_orpon_->Clear();
  _impl_._has_bits_[0] &= ~0x00010000u;
}
void BuildingSync::clear_house_kladr() {
  if (_impl_.house_kladr_ != nullptr) _impl_.house_kladr_->Clear();
  _impl_._has_bits_[0] &= ~0x00020000u;
}
BuildingSync::BuildingSync(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.access_control.v1.BuildingSync)
}
BuildingSync::BuildingSync(const BuildingSync& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  BuildingSync* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.city_) {}

    , decltype(_impl_.street_) {}

    , decltype(_impl_.number_) {}

    , decltype(_impl_.area_){nullptr}
    , decltype(_impl_.area_orpon_){nullptr}
    , decltype(_impl_.area_kladr_){nullptr}
    , decltype(_impl_.capital_marker_){nullptr}
    , decltype(_impl_.city_kladr_){nullptr}
    , decltype(_impl_.kladr_){nullptr}
    , decltype(_impl_.fias_level_){nullptr}
    , decltype(_impl_.fias_actuality_state_){nullptr}
    , decltype(_impl_.geo_lat_){nullptr}
    , decltype(_impl_.geo_lon_){nullptr}
    , decltype(_impl_.okato_){nullptr}
    , decltype(_impl_.oktmo_){nullptr}
    , decltype(_impl_.postal_code_){nullptr}
    , decltype(_impl_.region_){nullptr}
    , decltype(_impl_.region_kladr_){nullptr}
    , decltype(_impl_.street_kladr_){nullptr}
    , decltype(_impl_.street_orpon_){nullptr}
    , decltype(_impl_.house_kladr_){nullptr}
    , decltype(_impl_.orpon_) {}

    , decltype(_impl_.city_orpon_) {}

    , decltype(_impl_.region_orpon_) {}

    , decltype(_impl_.id_) {}
  };

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.city_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.city_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_city().empty()) {
    _this->_impl_.city_.Set(from._internal_city(), _this->GetArenaForAllocation());
  }
  _impl_.street_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.street_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_street().empty()) {
    _this->_impl_.street_.Set(from._internal_street(), _this->GetArenaForAllocation());
  }
  _impl_.number_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.number_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_number().empty()) {
    _this->_impl_.number_.Set(from._internal_number(), _this->GetArenaForAllocation());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.area_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.area_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000002u) != 0) {
    _this->_impl_.area_orpon_ = new ::PROTOBUF_NAMESPACE_ID::Int64Value(*from._impl_.area_orpon_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000004u) != 0) {
    _this->_impl_.area_kladr_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.area_kladr_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000008u) != 0) {
    _this->_impl_.capital_marker_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.capital_marker_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000010u) != 0) {
    _this->_impl_.city_kladr_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.city_kladr_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000020u) != 0) {
    _this->_impl_.kladr_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.kladr_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000040u) != 0) {
    _this->_impl_.fias_level_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.fias_level_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000080u) != 0) {
    _this->_impl_.fias_actuality_state_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.fias_actuality_state_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000100u) != 0) {
    _this->_impl_.geo_lat_ = new ::PROTOBUF_NAMESPACE_ID::DoubleValue(*from._impl_.geo_lat_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000200u) != 0) {
    _this->_impl_.geo_lon_ = new ::PROTOBUF_NAMESPACE_ID::DoubleValue(*from._impl_.geo_lon_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000400u) != 0) {
    _this->_impl_.okato_ = new ::PROTOBUF_NAMESPACE_ID::Int64Value(*from._impl_.okato_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000800u) != 0) {
    _this->_impl_.oktmo_ = new ::PROTOBUF_NAMESPACE_ID::Int64Value(*from._impl_.oktmo_);
  }
  if ((from._impl_._has_bits_[0] & 0x00001000u) != 0) {
    _this->_impl_.postal_code_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.postal_code_);
  }
  if ((from._impl_._has_bits_[0] & 0x00002000u) != 0) {
    _this->_impl_.region_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.region_);
  }
  if ((from._impl_._has_bits_[0] & 0x00004000u) != 0) {
    _this->_impl_.region_kladr_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.region_kladr_);
  }
  if ((from._impl_._has_bits_[0] & 0x00008000u) != 0) {
    _this->_impl_.street_kladr_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.street_kladr_);
  }
  if ((from._impl_._has_bits_[0] & 0x00010000u) != 0) {
    _this->_impl_.street_orpon_ = new ::PROTOBUF_NAMESPACE_ID::Int64Value(*from._impl_.street_orpon_);
  }
  if ((from._impl_._has_bits_[0] & 0x00020000u) != 0) {
    _this->_impl_.house_kladr_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.house_kladr_);
  }
  ::memcpy(&_impl_.orpon_, &from._impl_.orpon_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.id_) -
    reinterpret_cast<char*>(&_impl_.orpon_)) + sizeof(_impl_.id_));
  // @@protoc_insertion_point(copy_constructor:keyapis.access_control.v1.BuildingSync)
}

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

    , decltype(_impl_.street_) {}

    , decltype(_impl_.number_) {}

    , decltype(_impl_.area_){nullptr}
    , decltype(_impl_.area_orpon_){nullptr}
    , decltype(_impl_.area_kladr_){nullptr}
    , decltype(_impl_.capital_marker_){nullptr}
    , decltype(_impl_.city_kladr_){nullptr}
    , decltype(_impl_.kladr_){nullptr}
    , decltype(_impl_.fias_level_){nullptr}
    , decltype(_impl_.fias_actuality_state_){nullptr}
    , decltype(_impl_.geo_lat_){nullptr}
    , decltype(_impl_.geo_lon_){nullptr}
    , decltype(_impl_.okato_){nullptr}
    , decltype(_impl_.oktmo_){nullptr}
    , decltype(_impl_.postal_code_){nullptr}
    , decltype(_impl_.region_){nullptr}
    , decltype(_impl_.region_kladr_){nullptr}
    , decltype(_impl_.street_kladr_){nullptr}
    , decltype(_impl_.street_orpon_){nullptr}
    , decltype(_impl_.house_kladr_){nullptr}
    , decltype(_impl_.orpon_) { ::int64_t{0} }

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

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

    , decltype(_impl_.id_) { 0 }

  };
  _impl_.city_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.city_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.street_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.street_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.number_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.number_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

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

inline void BuildingSync::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.city_.Destroy();
  _impl_.street_.Destroy();
  _impl_.number_.Destroy();
  if (this != internal_default_instance()) delete _impl_.area_;
  if (this != internal_default_instance()) delete _impl_.area_orpon_;
  if (this != internal_default_instance()) delete _impl_.area_kladr_;
  if (this != internal_default_instance()) delete _impl_.capital_marker_;
  if (this != internal_default_instance()) delete _impl_.city_kladr_;
  if (this != internal_default_instance()) delete _impl_.kladr_;
  if (this != internal_default_instance()) delete _impl_.fias_level_;
  if (this != internal_default_instance()) delete _impl_.fias_actuality_state_;
  if (this != internal_default_instance()) delete _impl_.geo_lat_;
  if (this != internal_default_instance()) delete _impl_.geo_lon_;
  if (this != internal_default_instance()) delete _impl_.okato_;
  if (this != internal_default_instance()) delete _impl_.oktmo_;
  if (this != internal_default_instance()) delete _impl_.postal_code_;
  if (this != internal_default_instance()) delete _impl_.region_;
  if (this != internal_default_instance()) delete _impl_.region_kladr_;
  if (this != internal_default_instance()) delete _impl_.street_kladr_;
  if (this != internal_default_instance()) delete _impl_.street_orpon_;
  if (this != internal_default_instance()) delete _impl_.house_kladr_;
}

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

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

  _impl_.city_.ClearToEmpty();
  _impl_.street_.ClearToEmpty();
  _impl_.number_.ClearToEmpty();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.area_ != nullptr);
      _impl_.area_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.area_orpon_ != nullptr);
      _impl_.area_orpon_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      ABSL_DCHECK(_impl_.area_kladr_ != nullptr);
      _impl_.area_kladr_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      ABSL_DCHECK(_impl_.capital_marker_ != nullptr);
      _impl_.capital_marker_->Clear();
    }
    if (cached_has_bits & 0x00000010u) {
      ABSL_DCHECK(_impl_.city_kladr_ != nullptr);
      _impl_.city_kladr_->Clear();
    }
    if (cached_has_bits & 0x00000020u) {
      ABSL_DCHECK(_impl_.kladr_ != nullptr);
      _impl_.kladr_->Clear();
    }
    if (cached_has_bits & 0x00000040u) {
      ABSL_DCHECK(_impl_.fias_level_ != nullptr);
      _impl_.fias_level_->Clear();
    }
    if (cached_has_bits & 0x00000080u) {
      ABSL_DCHECK(_impl_.fias_actuality_state_ != nullptr);
      _impl_.fias_actuality_state_->Clear();
    }
  }
  if (cached_has_bits & 0x0000ff00u) {
    if (cached_has_bits & 0x00000100u) {
      ABSL_DCHECK(_impl_.geo_lat_ != nullptr);
      _impl_.geo_lat_->Clear();
    }
    if (cached_has_bits & 0x00000200u) {
      ABSL_DCHECK(_impl_.geo_lon_ != nullptr);
      _impl_.geo_lon_->Clear();
    }
    if (cached_has_bits & 0x00000400u) {
      ABSL_DCHECK(_impl_.okato_ != nullptr);
      _impl_.okato_->Clear();
    }
    if (cached_has_bits & 0x00000800u) {
      ABSL_DCHECK(_impl_.oktmo_ != nullptr);
      _impl_.oktmo_->Clear();
    }
    if (cached_has_bits & 0x00001000u) {
      ABSL_DCHECK(_impl_.postal_code_ != nullptr);
      _impl_.postal_code_->Clear();
    }
    if (cached_has_bits & 0x00002000u) {
      ABSL_DCHECK(_impl_.region_ != nullptr);
      _impl_.region_->Clear();
    }
    if (cached_has_bits & 0x00004000u) {
      ABSL_DCHECK(_impl_.region_kladr_ != nullptr);
      _impl_.region_kladr_->Clear();
    }
    if (cached_has_bits & 0x00008000u) {
      ABSL_DCHECK(_impl_.street_kladr_ != nullptr);
      _impl_.street_kladr_->Clear();
    }
  }
  if (cached_has_bits & 0x00030000u) {
    if (cached_has_bits & 0x00010000u) {
      ABSL_DCHECK(_impl_.street_orpon_ != nullptr);
      _impl_.street_orpon_->Clear();
    }
    if (cached_has_bits & 0x00020000u) {
      ABSL_DCHECK(_impl_.house_kladr_ != nullptr);
      _impl_.house_kladr_->Clear();
    }
  }
  ::memset(&_impl_.orpon_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.id_) -
      reinterpret_cast<char*>(&_impl_.orpon_)) + sizeof(_impl_.id_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* BuildingSync::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 id = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // int64 orpon = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          _impl_.orpon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // string city = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_city();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // string street = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_street();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // string number = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_number();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // int64 city_orpon = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 48)) {
          _impl_.city_orpon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // int64 region_orpon = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 56)) {
          _impl_.region_orpon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue area = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_area(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int64Value area_orpon = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_area_orpon(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue area_kladr = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_area_kladr(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value capital_marker = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_capital_marker(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue city_kladr = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_city_kladr(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue kladr = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_kladr(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value fias_level = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_fias_level(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value fias_actuality_state = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_fias_actuality_state(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.DoubleValue geo_lat = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_geo_lat(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.DoubleValue geo_lon = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_geo_lon(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int64Value okato = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_okato(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int64Value oktmo = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_oktmo(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value postal_code = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_postal_code(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue region = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_region(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue region_kladr = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_region_kladr(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue street_kladr = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_street_kladr(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int64Value street_orpon = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_street_orpon(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue house_kladr = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_house_kladr(), 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* BuildingSync::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.access_control.v1.BuildingSync)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

  // int64 orpon = 2;
  if (this->_internal_orpon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        2, this->_internal_orpon(), target);
  }

  // string city = 3;
  if (!this->_internal_city().empty()) {
    const std::string& _s = this->_internal_city();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.access_control.v1.BuildingSync.city");
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // string street = 4;
  if (!this->_internal_street().empty()) {
    const std::string& _s = this->_internal_street();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.access_control.v1.BuildingSync.street");
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // string number = 5;
  if (!this->_internal_number().empty()) {
    const std::string& _s = this->_internal_number();
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.access_control.v1.BuildingSync.number");
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // int64 city_orpon = 6;
  if (this->_internal_city_orpon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        6, this->_internal_city_orpon(), target);
  }

  // int64 region_orpon = 7;
  if (this->_internal_region_orpon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        7, this->_internal_region_orpon(), target);
  }

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

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

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

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

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

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

  // .google.protobuf.Int32Value fias_level = 14;
  if (cached_has_bits & 0x00000040u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(14, _Internal::fias_level(this),
        _Internal::fias_level(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Int32Value fias_actuality_state = 15;
  if (cached_has_bits & 0x00000080u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(15, _Internal::fias_actuality_state(this),
        _Internal::fias_actuality_state(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.DoubleValue geo_lat = 16;
  if (cached_has_bits & 0x00000100u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(16, _Internal::geo_lat(this),
        _Internal::geo_lat(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.DoubleValue geo_lon = 17;
  if (cached_has_bits & 0x00000200u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(17, _Internal::geo_lon(this),
        _Internal::geo_lon(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Int64Value okato = 18;
  if (cached_has_bits & 0x00000400u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(18, _Internal::okato(this),
        _Internal::okato(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Int64Value oktmo = 19;
  if (cached_has_bits & 0x00000800u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(19, _Internal::oktmo(this),
        _Internal::oktmo(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Int32Value postal_code = 20;
  if (cached_has_bits & 0x00001000u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(20, _Internal::postal_code(this),
        _Internal::postal_code(this).GetCachedSize(), target, stream);
  }

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

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

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

  // .google.protobuf.Int64Value street_orpon = 24;
  if (cached_has_bits & 0x00010000u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(24, _Internal::street_orpon(this),
        _Internal::street_orpon(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.StringValue house_kladr = 25;
  if (cached_has_bits & 0x00020000u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(25, _Internal::house_kladr(this),
        _Internal::house_kladr(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.access_control.v1.BuildingSync)
  return target;
}

::size_t BuildingSync::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.access_control.v1.BuildingSync)
  ::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 city = 3;
  if (!this->_internal_city().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_city());
  }

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

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

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

    // .google.protobuf.Int64Value area_orpon = 9;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.area_orpon_);
    }

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

    // .google.protobuf.Int32Value capital_marker = 11;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.capital_marker_);
    }

    // .google.protobuf.StringValue city_kladr = 12;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.city_kladr_);
    }

    // .google.protobuf.StringValue kladr = 13;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.kladr_);
    }

    // .google.protobuf.Int32Value fias_level = 14;
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.fias_level_);
    }

    // .google.protobuf.Int32Value fias_actuality_state = 15;
    if (cached_has_bits & 0x00000080u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.fias_actuality_state_);
    }

  }
  if (cached_has_bits & 0x0000ff00u) {
    // .google.protobuf.DoubleValue geo_lat = 16;
    if (cached_has_bits & 0x00000100u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.geo_lat_);
    }

    // .google.protobuf.DoubleValue geo_lon = 17;
    if (cached_has_bits & 0x00000200u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.geo_lon_);
    }

    // .google.protobuf.Int64Value okato = 18;
    if (cached_has_bits & 0x00000400u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.okato_);
    }

    // .google.protobuf.Int64Value oktmo = 19;
    if (cached_has_bits & 0x00000800u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.oktmo_);
    }

    // .google.protobuf.Int32Value postal_code = 20;
    if (cached_has_bits & 0x00001000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.postal_code_);
    }

    // .google.protobuf.StringValue region = 21;
    if (cached_has_bits & 0x00002000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.region_);
    }

    // .google.protobuf.StringValue region_kladr = 22;
    if (cached_has_bits & 0x00004000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.region_kladr_);
    }

    // .google.protobuf.StringValue street_kladr = 23;
    if (cached_has_bits & 0x00008000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.street_kladr_);
    }

  }
  if (cached_has_bits & 0x00030000u) {
    // .google.protobuf.Int64Value street_orpon = 24;
    if (cached_has_bits & 0x00010000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.street_orpon_);
    }

    // .google.protobuf.StringValue house_kladr = 25;
    if (cached_has_bits & 0x00020000u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.house_kladr_);
    }

  }
  // int64 orpon = 2;
  if (this->_internal_orpon() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
        this->_internal_orpon());
  }

  // int64 city_orpon = 6;
  if (this->_internal_city_orpon() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
        this->_internal_city_orpon());
  }

  // int64 region_orpon = 7;
  if (this->_internal_region_orpon() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
        this->_internal_region_orpon());
  }

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

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

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

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

  if (!from._internal_city().empty()) {
    _this->_internal_set_city(from._internal_city());
  }
  if (!from._internal_street().empty()) {
    _this->_internal_set_street(from._internal_street());
  }
  if (!from._internal_number().empty()) {
    _this->_internal_set_number(from._internal_number());
  }
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_area()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_area());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_area_orpon()->::PROTOBUF_NAMESPACE_ID::Int64Value::MergeFrom(
          from._internal_area_orpon());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_area_kladr()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_area_kladr());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_internal_mutable_capital_marker()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_capital_marker());
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_internal_mutable_city_kladr()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_city_kladr());
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_internal_mutable_kladr()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_kladr());
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_internal_mutable_fias_level()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_fias_level());
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_internal_mutable_fias_actuality_state()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_fias_actuality_state());
    }
  }
  if (cached_has_bits & 0x0000ff00u) {
    if (cached_has_bits & 0x00000100u) {
      _this->_internal_mutable_geo_lat()->::PROTOBUF_NAMESPACE_ID::DoubleValue::MergeFrom(
          from._internal_geo_lat());
    }
    if (cached_has_bits & 0x00000200u) {
      _this->_internal_mutable_geo_lon()->::PROTOBUF_NAMESPACE_ID::DoubleValue::MergeFrom(
          from._internal_geo_lon());
    }
    if (cached_has_bits & 0x00000400u) {
      _this->_internal_mutable_okato()->::PROTOBUF_NAMESPACE_ID::Int64Value::MergeFrom(
          from._internal_okato());
    }
    if (cached_has_bits & 0x00000800u) {
      _this->_internal_mutable_oktmo()->::PROTOBUF_NAMESPACE_ID::Int64Value::MergeFrom(
          from._internal_oktmo());
    }
    if (cached_has_bits & 0x00001000u) {
      _this->_internal_mutable_postal_code()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_postal_code());
    }
    if (cached_has_bits & 0x00002000u) {
      _this->_internal_mutable_region()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_region());
    }
    if (cached_has_bits & 0x00004000u) {
      _this->_internal_mutable_region_kladr()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_region_kladr());
    }
    if (cached_has_bits & 0x00008000u) {
      _this->_internal_mutable_street_kladr()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_street_kladr());
    }
  }
  if (cached_has_bits & 0x00030000u) {
    if (cached_has_bits & 0x00010000u) {
      _this->_internal_mutable_street_orpon()->::PROTOBUF_NAMESPACE_ID::Int64Value::MergeFrom(
          from._internal_street_orpon());
    }
    if (cached_has_bits & 0x00020000u) {
      _this->_internal_mutable_house_kladr()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_house_kladr());
    }
  }
  if (from._internal_orpon() != 0) {
    _this->_internal_set_orpon(from._internal_orpon());
  }
  if (from._internal_city_orpon() != 0) {
    _this->_internal_set_city_orpon(from._internal_city_orpon());
  }
  if (from._internal_region_orpon() != 0) {
    _this->_internal_set_region_orpon(from._internal_region_orpon());
  }
  if (from._internal_id() != 0) {
    _this->_internal_set_id(from._internal_id());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string BuildingSync::GetTypeName() const {
  return "keyapis.access_control.v1.BuildingSync";
}

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

class PostSyncBuildingRequest::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::access_control::v1::PostSyncBuildingRequest, _impl_._oneof_case_);
  static const ::keyapis::access_control::v1::BuildingSync& data(const PostSyncBuildingRequest* msg);
};

const ::keyapis::access_control::v1::BuildingSync&
PostSyncBuildingRequest::_Internal::data(const PostSyncBuildingRequest* msg) {
  return *msg->_impl_.type_.data_;
}
void PostSyncBuildingRequest::set_allocated_data(::keyapis::access_control::v1::BuildingSync* 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.access_control.v1.PostSyncBuildingRequest.data)
}
PostSyncBuildingRequest::PostSyncBuildingRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.access_control.v1.PostSyncBuildingRequest)
}
PostSyncBuildingRequest::PostSyncBuildingRequest(const PostSyncBuildingRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostSyncBuildingRequest* 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 kBuildingId: {
      _this->_internal_set_building_id(from._internal_building_id());
      break;
    }
    case kData: {
      _this->_internal_mutable_data()->::keyapis::access_control::v1::BuildingSync::MergeFrom(
          from._internal_data());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.access_control.v1.PostSyncBuildingRequest)
}

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

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

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

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

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


void PostSyncBuildingRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.access_control.v1.PostSyncBuildingRequest)
  ::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* PostSyncBuildingRequest::_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 building_id = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _internal_set_building_id(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.access_control.v1.BuildingSync data = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          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:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

  switch (type_case()) {
    case kBuildingId: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          1, this->_internal_building_id(), target);
      break;
    }
    case kData: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::data(this),
          _Internal::data(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.access_control.v1.PostSyncBuildingRequest)
  return target;
}

::size_t PostSyncBuildingRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.access_control.v1.PostSyncBuildingRequest)
  ::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 building_id = 1 [(.google.api.field_behavior) = REQUIRED];
    case kBuildingId: {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this->_internal_building_id());
      break;
    }
    // .keyapis.access_control.v1.BuildingSync data = 2 [(.google.api.field_behavior) = REQUIRED];
    case kData: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.data_);
      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 PostSyncBuildingRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PostSyncBuildingRequest*>(
      &from));
}

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

  switch (from.type_case()) {
    case kBuildingId: {
      _this->_internal_set_building_id(from._internal_building_id());
      break;
    }
    case kData: {
      _this->_internal_mutable_data()->::keyapis::access_control::v1::BuildingSync::MergeFrom(
          from._internal_data());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

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

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

const ::keyapis::access_control::v1::ValidationError&
PostSyncBuildingResponse_Error::_Internal::validation(const PostSyncBuildingResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void PostSyncBuildingResponse_Error::set_allocated_validation(::keyapis::access_control::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(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(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.access_control.v1.PostSyncBuildingResponse.Error.validation)
}
void PostSyncBuildingResponse_Error::clear_validation() {
  if (reason_case() == kValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.validation_;
    }
    clear_has_reason();
  }
}
PostSyncBuildingResponse_Error::PostSyncBuildingResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.access_control.v1.PostSyncBuildingResponse.Error)
}
PostSyncBuildingResponse_Error::PostSyncBuildingResponse_Error(const PostSyncBuildingResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostSyncBuildingResponse_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::access_control::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.access_control.v1.PostSyncBuildingResponse.Error)
}

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

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

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

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

void PostSyncBuildingResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.access_control.v1.PostSyncBuildingResponse.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 PostSyncBuildingResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.access_control.v1.PostSyncBuildingResponse.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* PostSyncBuildingResponse_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.access_control.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* PostSyncBuildingResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.access_control.v1.PostSyncBuildingResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.access_control.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.access_control.v1.PostSyncBuildingResponse.Error)
  return target;
}

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

void PostSyncBuildingResponse_Error::MergeFrom(const PostSyncBuildingResponse_Error& from) {
  PostSyncBuildingResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.access_control.v1.PostSyncBuildingResponse.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::access_control::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void PostSyncBuildingResponse_Error::InternalSwap(PostSyncBuildingResponse_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 PostSyncBuildingResponse_Error::GetTypeName() const {
  return "keyapis.access_control.v1.PostSyncBuildingResponse.Error";
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

const ::PROTOBUF_NAMESPACE_ID::Timestamp&
GetSyncBuildingsRequest::_Internal::last_sync_before_at(const GetSyncBuildingsRequest* msg) {
  return *msg->_impl_.last_sync_before_at_;
}
void GetSyncBuildingsRequest::clear_last_sync_before_at() {
  if (_impl_.last_sync_before_at_ != nullptr) _impl_.last_sync_before_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
GetSyncBuildingsRequest::GetSyncBuildingsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.access_control.v1.GetSyncBuildingsRequest)
}
GetSyncBuildingsRequest::GetSyncBuildingsRequest(const GetSyncBuildingsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetSyncBuildingsRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.last_sync_before_at_){nullptr}
    , decltype(_impl_.batch_size_) {}
  };

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.last_sync_before_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.last_sync_before_at_);
  }
  _this->_impl_.batch_size_ = from._impl_.batch_size_;
  // @@protoc_insertion_point(copy_constructor:keyapis.access_control.v1.GetSyncBuildingsRequest)
}

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

  };
}

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

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

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

void GetSyncBuildingsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.access_control.v1.GetSyncBuildingsRequest)
  ::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_.last_sync_before_at_ != nullptr);
    _impl_.last_sync_before_at_->Clear();
  }
  _impl_.batch_size_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

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

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

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

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

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

::size_t GetSyncBuildingsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.access_control.v1.GetSyncBuildingsRequest)
  ::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.Timestamp last_sync_before_at = 2 [(.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_.last_sync_before_at_);
  }

  // int32 batch_size = 1 [(.google.api.field_behavior) = REQUIRED];
  if (this->_internal_batch_size() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
        this->_internal_batch_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 GetSyncBuildingsRequest::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetSyncBuildingsRequest*>(
      &from));
}

void GetSyncBuildingsRequest::MergeFrom(const GetSyncBuildingsRequest& from) {
  GetSyncBuildingsRequest* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.access_control.v1.GetSyncBuildingsRequest)
  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_last_sync_before_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
        from._internal_last_sync_before_at());
  }
  if (from._internal_batch_size() != 0) {
    _this->_internal_set_batch_size(from._internal_batch_size());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetSyncBuildingsRequest::InternalSwap(GetSyncBuildingsRequest* 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(GetSyncBuildingsRequest, _impl_.batch_size_)
      + sizeof(GetSyncBuildingsRequest::_impl_.batch_size_)
      - PROTOBUF_FIELD_OFFSET(GetSyncBuildingsRequest, _impl_.last_sync_before_at_)>(
          reinterpret_cast<char*>(&_impl_.last_sync_before_at_),
          reinterpret_cast<char*>(&other->_impl_.last_sync_before_at_));
}

std::string GetSyncBuildingsRequest::GetTypeName() const {
  return "keyapis.access_control.v1.GetSyncBuildingsRequest";
}

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

class GetSyncBuildingsResponse_BuildingList::_Internal {
 public:
};

GetSyncBuildingsResponse_BuildingList::GetSyncBuildingsResponse_BuildingList(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.access_control.v1.GetSyncBuildingsResponse.BuildingList)
}
GetSyncBuildingsResponse_BuildingList::GetSyncBuildingsResponse_BuildingList(const GetSyncBuildingsResponse_BuildingList& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetSyncBuildingsResponse_BuildingList* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.buildings_){from._impl_.buildings_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:keyapis.access_control.v1.GetSyncBuildingsResponse.BuildingList)
}

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

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

inline void GetSyncBuildingsResponse_BuildingList::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_buildings()->~RepeatedPtrField();
}

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

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

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

const char* GetSyncBuildingsResponse_BuildingList::_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.access_control.v1.BuildingSync buildings = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_buildings(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(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* GetSyncBuildingsResponse_BuildingList::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.access_control.v1.GetSyncBuildingsResponse.BuildingList)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .keyapis.access_control.v1.BuildingSync buildings = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_buildings_size()); i < n; i++) {
    const auto& repfield = this->_internal_buildings(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, 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.access_control.v1.GetSyncBuildingsResponse.BuildingList)
  return target;
}

::size_t GetSyncBuildingsResponse_BuildingList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.access_control.v1.GetSyncBuildingsResponse.BuildingList)
  ::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.access_control.v1.BuildingSync buildings = 1;
  total_size += 1UL * this->_internal_buildings_size();
  for (const auto& msg : this->_internal_buildings()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

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

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

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

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

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

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

std::string GetSyncBuildingsResponse_BuildingList::GetTypeName() const {
  return "keyapis.access_control.v1.GetSyncBuildingsResponse.BuildingList";
}

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

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

const ::keyapis::access_control::v1::ValidationError&
GetSyncBuildingsResponse_Error::_Internal::validation(const GetSyncBuildingsResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetSyncBuildingsResponse_Error::set_allocated_validation(::keyapis::access_control::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(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(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.access_control.v1.GetSyncBuildingsResponse.Error.validation)
}
void GetSyncBuildingsResponse_Error::clear_validation() {
  if (reason_case() == kValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.validation_;
    }
    clear_has_reason();
  }
}
GetSyncBuildingsResponse_Error::GetSyncBuildingsResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.access_control.v1.GetSyncBuildingsResponse.Error)
}
GetSyncBuildingsResponse_Error::GetSyncBuildingsResponse_Error(const GetSyncBuildingsResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetSyncBuildingsResponse_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::access_control::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.access_control.v1.GetSyncBuildingsResponse.Error)
}

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

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

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

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

void GetSyncBuildingsResponse_Error::clear_reason() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.access_control.v1.GetSyncBuildingsResponse.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 GetSyncBuildingsResponse_Error::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.access_control.v1.GetSyncBuildingsResponse.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* GetSyncBuildingsResponse_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.access_control.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* GetSyncBuildingsResponse_Error::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.access_control.v1.GetSyncBuildingsResponse.Error)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.access_control.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.access_control.v1.GetSyncBuildingsResponse.Error)
  return target;
}

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

void GetSyncBuildingsResponse_Error::MergeFrom(const GetSyncBuildingsResponse_Error& from) {
  GetSyncBuildingsResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.access_control.v1.GetSyncBuildingsResponse.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::access_control::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void GetSyncBuildingsResponse_Error::InternalSwap(GetSyncBuildingsResponse_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 GetSyncBuildingsResponse_Error::GetTypeName() const {
  return "keyapis.access_control.v1.GetSyncBuildingsResponse.Error";
}

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

class GetSyncBuildingsResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::access_control::v1::GetSyncBuildingsResponse, _impl_._oneof_case_);
  static const ::keyapis::access_control::v1::GetSyncBuildingsResponse_BuildingList& data(const GetSyncBuildingsResponse* msg);
  static const ::keyapis::access_control::v1::GetSyncBuildingsResponse_Error& error(const GetSyncBuildingsResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace access_control
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::BuildingSync*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::BuildingSync >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::BuildingSync >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::PostSyncBuildingRequest*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::PostSyncBuildingRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::PostSyncBuildingRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::PostSyncBuildingResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::PostSyncBuildingResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::PostSyncBuildingResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::PostSyncBuildingResponse*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::PostSyncBuildingResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::PostSyncBuildingResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::GetSyncBuildingsRequest*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::GetSyncBuildingsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::GetSyncBuildingsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::GetSyncBuildingsResponse_BuildingList*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::GetSyncBuildingsResponse_BuildingList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::GetSyncBuildingsResponse_BuildingList >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::GetSyncBuildingsResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::GetSyncBuildingsResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::GetSyncBuildingsResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::access_control::v1::GetSyncBuildingsResponse*
Arena::CreateMaybeMessage< ::keyapis::access_control::v1::GetSyncBuildingsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::access_control::v1::GetSyncBuildingsResponse >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
