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

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Banner_Gradient_Linear_PointDefaultTypeInternal _Banner_Gradient_Linear_Point_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR Banner_Gradient_Linear::Banner_Gradient_Linear(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.points_)*/{}
  , /*decltype(_impl_.angle_)*/ 0

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Banner_Gradient_LinearDefaultTypeInternal _Banner_Gradient_Linear_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR Banner_Gradient::Banner_Gradient(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct Banner_GradientDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Banner_GradientDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~Banner_GradientDefaultTypeInternal() {}
  union {
    Banner_Gradient _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Banner_GradientDefaultTypeInternal _Banner_Gradient_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR Banner_Image::Banner_Image(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.url_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

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

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

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Banner_LinkDefaultTypeInternal _Banner_Link_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR Banner_SavingError_Conflict::Banner_SavingError_Conflict(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._cached_size_)*/{}} {}
struct Banner_SavingError_ConflictDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Banner_SavingError_ConflictDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~Banner_SavingError_ConflictDefaultTypeInternal() {}
  union {
    Banner_SavingError_Conflict _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Banner_SavingError_ConflictDefaultTypeInternal _Banner_SavingError_Conflict_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR Banner_SavingError::Banner_SavingError(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct Banner_SavingErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Banner_SavingErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~Banner_SavingErrorDefaultTypeInternal() {}
  union {
    Banner_SavingError _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Banner_SavingErrorDefaultTypeInternal _Banner_SavingError_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR Banner::Banner(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.images_)*/{}
  , /*decltype(_impl_.links_)*/{}
  , /*decltype(_impl_.user_tags_)*/{}
  , /*decltype(_impl_.app_tags_)*/{}
  , /*decltype(_impl_.id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

  , /*decltype(_impl_.header_)*/nullptr
  , /*decltype(_impl_.header_color_)*/nullptr
  , /*decltype(_impl_.subtitle_)*/nullptr
  , /*decltype(_impl_.subtitle_color_)*/nullptr
  , /*decltype(_impl_.background_color_)*/nullptr
  , /*decltype(_impl_.background_gradient_)*/nullptr
  , /*decltype(_impl_.repeat_after_days_)*/nullptr
  , /*decltype(_impl_.show_start_at_)*/nullptr
  , /*decltype(_impl_.show_ended_at_)*/nullptr
  , /*decltype(_impl_.created_at_)*/nullptr
  , /*decltype(_impl_.changed_at_)*/nullptr
  , /*decltype(_impl_.type_)*/ 0

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BannerDefaultTypeInternal _Banner_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR BannerLite_ImageLite::BannerLite_ImageLite(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.url_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

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

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

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

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

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

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

  , /*decltype(_impl_.repeat_after_days_)*/nullptr} {}
struct BannerLiteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BannerLiteDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BannerLiteDefaultTypeInternal() {}
  union {
    BannerLite _instance;
  };
};

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

  , /*decltype(_impl_.priority_types_)*/ {}
  , /*decltype(_impl_._priority_types_cached_byte_size_)*/ { 0 }

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

  , /*decltype(_impl_.user_tags_)*/{}
  , /*decltype(_impl_.app_tags_)*/{}
  , /*decltype(_impl_.text_)*/nullptr
  , /*decltype(_impl_.begin_priority_)*/nullptr
  , /*decltype(_impl_.end_priority_)*/nullptr
  , /*decltype(_impl_.begin_show_start_at_)*/nullptr
  , /*decltype(_impl_.end_show_start_at_)*/nullptr
  , /*decltype(_impl_.begin_show_ended_at_)*/nullptr
  , /*decltype(_impl_.end_show_ended_at_)*/nullptr} {}
struct BannerFilterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BannerFilterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BannerFilterDefaultTypeInternal() {}
  union {
    BannerFilter _instance;
  };
};

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

  , /*decltype(_impl_.user_tags_)*/{}
  , /*decltype(_impl_.app_name_)*/nullptr
  , /*decltype(_impl_.version_)*/nullptr
  , /*decltype(_impl_.platform_type_)*/ 0
} {}
struct BannerLiteFilterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BannerLiteFilterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BannerLiteFilterDefaultTypeInternal() {}
  union {
    BannerLiteFilter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BannerLiteFilterDefaultTypeInternal _BannerLiteFilter_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR BannerPaging::BannerPaging(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.order_by_type_)*/ 0

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

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

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BannerPagingDefaultTypeInternal _BannerPaging_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostBannerRequest::PostBannerRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.data_)*/nullptr} {}
struct PostBannerRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostBannerRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostBannerRequestDefaultTypeInternal() {}
  union {
    PostBannerRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostBannerRequestDefaultTypeInternal _PostBannerRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostBannerResponse_Error::PostBannerResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostBannerResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostBannerResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostBannerResponse_ErrorDefaultTypeInternal() {}
  union {
    PostBannerResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostBannerResponse_ErrorDefaultTypeInternal _PostBannerResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostBannerResponse::PostBannerResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostBannerResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostBannerResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostBannerResponseDefaultTypeInternal() {}
  union {
    PostBannerResponse _instance;
  };
};

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerRequestDefaultTypeInternal _GetBannerRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerResponse_Error::GetBannerResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerResponse_ErrorDefaultTypeInternal() {}
  union {
    GetBannerResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerResponse_ErrorDefaultTypeInternal _GetBannerResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerResponse::GetBannerResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerResponseDefaultTypeInternal() {}
  union {
    GetBannerResponse _instance;
  };
};

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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerLiteRequestDefaultTypeInternal _GetBannerLiteRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerLiteResponse_Error::GetBannerLiteResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerLiteResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerLiteResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerLiteResponse_ErrorDefaultTypeInternal() {}
  union {
    GetBannerLiteResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerLiteResponse_ErrorDefaultTypeInternal _GetBannerLiteResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerLiteResponse::GetBannerLiteResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerLiteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerLiteResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerLiteResponseDefaultTypeInternal() {}
  union {
    GetBannerLiteResponse _instance;
  };
};

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerListRequestDefaultTypeInternal _GetBannerListRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerListResponse_Error::GetBannerListResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerListResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerListResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerListResponse_ErrorDefaultTypeInternal() {}
  union {
    GetBannerListResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerListResponse_ErrorDefaultTypeInternal _GetBannerListResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerListResponse::GetBannerListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerListResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerListResponseDefaultTypeInternal() {}
  union {
    GetBannerListResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerListResponseDefaultTypeInternal _GetBannerListResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerLiteListRequest::GetBannerLiteListRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.filter_)*/nullptr
  , /*decltype(_impl_.is_link_filter_disabled_)*/ false
} {}
struct GetBannerLiteListRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerLiteListRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerLiteListRequestDefaultTypeInternal() {}
  union {
    GetBannerLiteListRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerLiteListRequestDefaultTypeInternal _GetBannerLiteListRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerLiteListResponse_Error::GetBannerLiteListResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerLiteListResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerLiteListResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerLiteListResponse_ErrorDefaultTypeInternal() {}
  union {
    GetBannerLiteListResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerLiteListResponse_ErrorDefaultTypeInternal _GetBannerLiteListResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerLiteListResponse::GetBannerLiteListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerLiteListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerLiteListResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerLiteListResponseDefaultTypeInternal() {}
  union {
    GetBannerLiteListResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerLiteListResponseDefaultTypeInternal _GetBannerLiteListResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerCountRequest::GetBannerCountRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.filter_)*/nullptr} {}
struct GetBannerCountRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerCountRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerCountRequestDefaultTypeInternal() {}
  union {
    GetBannerCountRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerCountRequestDefaultTypeInternal _GetBannerCountRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerCountResponse_Error::GetBannerCountResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerCountResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerCountResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerCountResponse_ErrorDefaultTypeInternal() {}
  union {
    GetBannerCountResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerCountResponse_ErrorDefaultTypeInternal _GetBannerCountResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR GetBannerCountResponse::GetBannerCountResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct GetBannerCountResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GetBannerCountResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GetBannerCountResponseDefaultTypeInternal() {}
  union {
    GetBannerCountResponse _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetBannerCountResponseDefaultTypeInternal _GetBannerCountResponse_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR UploadImage::UploadImage(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.base64_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UploadImageDefaultTypeInternal _UploadImage_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostBannerUploadImageRequest::PostBannerUploadImageRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.banner_id_)*/ {
    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
  }

  , /*decltype(_impl_.upload_image_)*/nullptr} {}
struct PostBannerUploadImageRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostBannerUploadImageRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostBannerUploadImageRequestDefaultTypeInternal() {}
  union {
    PostBannerUploadImageRequest _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostBannerUploadImageRequestDefaultTypeInternal _PostBannerUploadImageRequest_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostBannerUploadImageResponse_Error::PostBannerUploadImageResponse_Error(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.reason_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostBannerUploadImageResponse_ErrorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostBannerUploadImageResponse_ErrorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostBannerUploadImageResponse_ErrorDefaultTypeInternal() {}
  union {
    PostBannerUploadImageResponse_Error _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PostBannerUploadImageResponse_ErrorDefaultTypeInternal _PostBannerUploadImageResponse_Error_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR PostBannerUploadImageResponse::PostBannerUploadImageResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct PostBannerUploadImageResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PostBannerUploadImageResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PostBannerUploadImageResponseDefaultTypeInternal() {}
  union {
    PostBannerUploadImageResponse _instance;
  };
};

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

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

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

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

static const char Banner_Image_Type_names[] = {
    "ICON"
    "LANDSCAPE"
    "PORTRAIT"
    "TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry Banner_Image_Type_entries[] =
    {
        {{&Banner_Image_Type_names[0], 4}, 3},
        {{&Banner_Image_Type_names[4], 9}, 2},
        {{&Banner_Image_Type_names[13], 8}, 1},
        {{&Banner_Image_Type_names[21], 12}, 0},
};

static const int Banner_Image_Type_entries_by_number[] = {
    3,  // 0 -> TYPE_UNKNOWN
    2,  // 1 -> PORTRAIT
    1,  // 2 -> LANDSCAPE
    0,  // 3 -> ICON
};

const std::string& Banner_Image_Type_Name(Banner_Image_Type value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Banner_Image_Type_entries, Banner_Image_Type_entries_by_number,
          4, Banner_Image_Type_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Banner_Image_Type_entries, Banner_Image_Type_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Banner_Image_Type_strings[idx].get();
}

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

constexpr Banner_Image_Type Banner_Image::TYPE_UNKNOWN;
constexpr Banner_Image_Type Banner_Image::PORTRAIT;
constexpr Banner_Image_Type Banner_Image::LANDSCAPE;
constexpr Banner_Image_Type Banner_Image::ICON;
constexpr Banner_Image_Type Banner_Image::Type_MIN;
constexpr Banner_Image_Type Banner_Image::Type_MAX;
constexpr int Banner_Image::Type_ARRAYSIZE;

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

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

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

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

const std::string& Banner_Link_Type_Name(Banner_Link_Type value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Banner_Link_Type_entries, Banner_Link_Type_entries_by_number,
          6, Banner_Link_Type_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Banner_Link_Type_entries, Banner_Link_Type_entries_by_number, 6,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Banner_Link_Type_strings[idx].get();
}

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

constexpr Banner_Link_Type Banner_Link::TYPE_UNKNOWN;
constexpr Banner_Link_Type Banner_Link::INTERNAL_APP;
constexpr Banner_Link_Type Banner_Link::EXTERNAL_APP;
constexpr Banner_Link_Type Banner_Link::WEB_VIEW;
constexpr Banner_Link_Type Banner_Link::WEB_BROWSER;
constexpr Banner_Link_Type Banner_Link::EXTERNAL_WEB_VIEW;
constexpr Banner_Link_Type Banner_Link::Type_MIN;
constexpr Banner_Link_Type Banner_Link::Type_MAX;
constexpr int Banner_Link::Type_ARRAYSIZE;

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

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

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

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

const std::string& Banner_Type_Name(Banner_Type value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Banner_Type_entries, Banner_Type_entries_by_number,
          2, Banner_Type_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Banner_Type_entries, Banner_Type_entries_by_number, 2,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Banner_Type_strings[idx].get();
}

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

constexpr Banner_Type Banner::TYPE_UNKNOWN;
constexpr Banner_Type Banner::STANDARD;
constexpr Banner_Type Banner::Type_MIN;
constexpr Banner_Type Banner::Type_MAX;
constexpr int Banner::Type_ARRAYSIZE;

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

static const char Banner_PriorityType_names[] = {
    "CRITICAL"
    "NORMAL"
    "PRIORITY_TYPE_UNKNOWN"
    "WHITE_LABEL"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry Banner_PriorityType_entries[] =
    {
        {{&Banner_PriorityType_names[0], 8}, 3},
        {{&Banner_PriorityType_names[8], 6}, 1},
        {{&Banner_PriorityType_names[14], 21}, 0},
        {{&Banner_PriorityType_names[35], 11}, 2},
};

static const int Banner_PriorityType_entries_by_number[] = {
    2,  // 0 -> PRIORITY_TYPE_UNKNOWN
    1,  // 1 -> NORMAL
    3,  // 2 -> WHITE_LABEL
    0,  // 3 -> CRITICAL
};

const std::string& Banner_PriorityType_Name(Banner_PriorityType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Banner_PriorityType_entries, Banner_PriorityType_entries_by_number,
          4, Banner_PriorityType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Banner_PriorityType_entries, Banner_PriorityType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Banner_PriorityType_strings[idx].get();
}

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

constexpr Banner_PriorityType Banner::PRIORITY_TYPE_UNKNOWN;
constexpr Banner_PriorityType Banner::NORMAL;
constexpr Banner_PriorityType Banner::WHITE_LABEL;
constexpr Banner_PriorityType Banner::CRITICAL;
constexpr Banner_PriorityType Banner::PriorityType_MIN;
constexpr Banner_PriorityType Banner::PriorityType_MAX;
constexpr int Banner::PriorityType_ARRAYSIZE;

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

static const char Banner_StatusType_names[] = {
    "ACTIVE"
    "DEFERRED"
    "EXPIRED"
    "STATUS_TYPE_UNKNOWN"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry Banner_StatusType_entries[] =
    {
        {{&Banner_StatusType_names[0], 6}, 2},
        {{&Banner_StatusType_names[6], 8}, 1},
        {{&Banner_StatusType_names[14], 7}, 3},
        {{&Banner_StatusType_names[21], 19}, 0},
};

static const int Banner_StatusType_entries_by_number[] = {
    3,  // 0 -> STATUS_TYPE_UNKNOWN
    1,  // 1 -> DEFERRED
    0,  // 2 -> ACTIVE
    2,  // 3 -> EXPIRED
};

const std::string& Banner_StatusType_Name(Banner_StatusType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Banner_StatusType_entries, Banner_StatusType_entries_by_number,
          4, Banner_StatusType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Banner_StatusType_entries, Banner_StatusType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Banner_StatusType_strings[idx].get();
}

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

constexpr Banner_StatusType Banner::STATUS_TYPE_UNKNOWN;
constexpr Banner_StatusType Banner::DEFERRED;
constexpr Banner_StatusType Banner::ACTIVE;
constexpr Banner_StatusType Banner::EXPIRED;
constexpr Banner_StatusType Banner::StatusType_MIN;
constexpr Banner_StatusType Banner::StatusType_MAX;
constexpr int Banner::StatusType_ARRAYSIZE;

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

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

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

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

const std::string& Banner_PlatformType_Name(Banner_PlatformType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          Banner_PlatformType_entries, Banner_PlatformType_entries_by_number,
          4, Banner_PlatformType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      Banner_PlatformType_entries, Banner_PlatformType_entries_by_number, 4,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : Banner_PlatformType_strings[idx].get();
}

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

constexpr Banner_PlatformType Banner::PLATFORM_TYPE_UNKNOWN;
constexpr Banner_PlatformType Banner::IOS;
constexpr Banner_PlatformType Banner::ANDROID;
constexpr Banner_PlatformType Banner::WEB;
constexpr Banner_PlatformType Banner::PlatformType_MIN;
constexpr Banner_PlatformType Banner::PlatformType_MAX;
constexpr int Banner::PlatformType_ARRAYSIZE;

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

static const char BannerPaging_OrderByType_names[] = {
    "CHANGED_AT"
    "CREATED_AT"
    "ORDER_BY_TYPE_UNKNOWN"
    "PRIORITY_THEN_SHOW_START_AT"
    "RANK"
    "SHOW_ENDED_AT"
    "SHOW_START_AT"
};

static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry BannerPaging_OrderByType_entries[] =
    {
        {{&BannerPaging_OrderByType_names[0], 10}, 1},
        {{&BannerPaging_OrderByType_names[10], 10}, 3},
        {{&BannerPaging_OrderByType_names[20], 21}, 0},
        {{&BannerPaging_OrderByType_names[41], 27}, 2},
        {{&BannerPaging_OrderByType_names[68], 4}, 6},
        {{&BannerPaging_OrderByType_names[72], 13}, 5},
        {{&BannerPaging_OrderByType_names[85], 13}, 4},
};

static const int BannerPaging_OrderByType_entries_by_number[] = {
    2,  // 0 -> ORDER_BY_TYPE_UNKNOWN
    0,  // 1 -> CHANGED_AT
    3,  // 2 -> PRIORITY_THEN_SHOW_START_AT
    1,  // 3 -> CREATED_AT
    6,  // 4 -> SHOW_START_AT
    5,  // 5 -> SHOW_ENDED_AT
    4,  // 6 -> RANK
};

const std::string& BannerPaging_OrderByType_Name(BannerPaging_OrderByType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          BannerPaging_OrderByType_entries, BannerPaging_OrderByType_entries_by_number,
          7, BannerPaging_OrderByType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      BannerPaging_OrderByType_entries, BannerPaging_OrderByType_entries_by_number, 7,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : BannerPaging_OrderByType_strings[idx].get();
}

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

constexpr BannerPaging_OrderByType BannerPaging::ORDER_BY_TYPE_UNKNOWN;
constexpr BannerPaging_OrderByType BannerPaging::CHANGED_AT;
constexpr BannerPaging_OrderByType BannerPaging::PRIORITY_THEN_SHOW_START_AT;
constexpr BannerPaging_OrderByType BannerPaging::CREATED_AT;
constexpr BannerPaging_OrderByType BannerPaging::SHOW_START_AT;
constexpr BannerPaging_OrderByType BannerPaging::SHOW_ENDED_AT;
constexpr BannerPaging_OrderByType BannerPaging::RANK;
constexpr BannerPaging_OrderByType BannerPaging::OrderByType_MIN;
constexpr BannerPaging_OrderByType BannerPaging::OrderByType_MAX;
constexpr int BannerPaging::OrderByType_ARRAYSIZE;

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

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

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

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

const std::string& BannerPaging_DirectionType_Name(BannerPaging_DirectionType value) {
  static const bool kDummy =
      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
          BannerPaging_DirectionType_entries, BannerPaging_DirectionType_entries_by_number,
          3, BannerPaging_DirectionType_strings);
  (void)kDummy;

  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
      BannerPaging_DirectionType_entries, BannerPaging_DirectionType_entries_by_number, 3,
      value);
  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString()
                   : BannerPaging_DirectionType_strings[idx].get();
}

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

constexpr BannerPaging_DirectionType BannerPaging::DIRECTION_TYPE_UNKNOWN;
constexpr BannerPaging_DirectionType BannerPaging::DESC;
constexpr BannerPaging_DirectionType BannerPaging::ASC;
constexpr BannerPaging_DirectionType BannerPaging::DirectionType_MIN;
constexpr BannerPaging_DirectionType BannerPaging::DirectionType_MAX;
constexpr int BannerPaging::DirectionType_ARRAYSIZE;

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

class Banner_Gradient_Linear_Point::_Internal {
 public:
};

Banner_Gradient_Linear_Point::Banner_Gradient_Linear_Point(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.Banner.Gradient.Linear.Point)
}
Banner_Gradient_Linear_Point::Banner_Gradient_Linear_Point(const Banner_Gradient_Linear_Point& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  Banner_Gradient_Linear_Point* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.color_) {}

    , decltype(_impl_.stop_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.color_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.color_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_color().empty()) {
    _this->_impl_.color_.Set(from._internal_color(), _this->GetArenaForAllocation());
  }
  _this->_impl_.stop_ = from._impl_.stop_;
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.Banner.Gradient.Linear.Point)
}

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

    , decltype(_impl_.stop_) { 0 }

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

Banner_Gradient_Linear_Point::~Banner_Gradient_Linear_Point() {
  // @@protoc_insertion_point(destructor:keyapis.banner.v1.Banner.Gradient.Linear.Point)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

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

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

void Banner_Gradient_Linear_Point::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.banner.v1.Banner.Gradient.Linear.Point)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.color_.ClearToEmpty();
  _impl_.stop_ = 0;
  _internal_metadata_.Clear<std::string>();
}

const char* Banner_Gradient_Linear_Point::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string color = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_color();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // float stop = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 21)) {
          _impl_.stop_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } 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* Banner_Gradient_Linear_Point::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.Banner.Gradient.Linear.Point)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

  // float stop = 2;
  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
  float tmp_stop = this->_internal_stop();
  ::uint32_t raw_stop;
  memcpy(&raw_stop, &tmp_stop, sizeof(tmp_stop));
  if (raw_stop != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this->_internal_stop(), target);
  }

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

::size_t Banner_Gradient_Linear_Point::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.Banner.Gradient.Linear.Point)
  ::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 color = 1 [(.google.api.field_behavior) = REQUIRED];
  if (!this->_internal_color().empty()) {
    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                    this->_internal_color());
  }

  // float stop = 2;
  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
  float tmp_stop = this->_internal_stop();
  ::uint32_t raw_stop;
  memcpy(&raw_stop, &tmp_stop, sizeof(tmp_stop));
  if (raw_stop != 0) {
    total_size += 5;
  }

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

void Banner_Gradient_Linear_Point::MergeFrom(const Banner_Gradient_Linear_Point& from) {
  Banner_Gradient_Linear_Point* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.banner.v1.Banner.Gradient.Linear.Point)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_color().empty()) {
    _this->_internal_set_color(from._internal_color());
  }
  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
  float tmp_stop = from._internal_stop();
  ::uint32_t raw_stop;
  memcpy(&raw_stop, &tmp_stop, sizeof(tmp_stop));
  if (raw_stop != 0) {
    _this->_internal_set_stop(from._internal_stop());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void Banner_Gradient_Linear_Point::CopyFrom(const Banner_Gradient_Linear_Point& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.banner.v1.Banner.Gradient.Linear.Point)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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

std::string Banner_Gradient_Linear_Point::GetTypeName() const {
  return "keyapis.banner.v1.Banner.Gradient.Linear.Point";
}

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

class Banner_Gradient_Linear::_Internal {
 public:
};

Banner_Gradient_Linear::Banner_Gradient_Linear(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.Banner.Gradient.Linear)
}
Banner_Gradient_Linear::Banner_Gradient_Linear(const Banner_Gradient_Linear& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  Banner_Gradient_Linear* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.points_){from._impl_.points_}
    , decltype(_impl_.angle_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _this->_impl_.angle_ = from._impl_.angle_;
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.Banner.Gradient.Linear)
}

inline void Banner_Gradient_Linear::SharedCtor(::_pb::Arena* arena) {
  (void)arena;
  new (&_impl_) Impl_{
      decltype(_impl_.points_){arena}
    , decltype(_impl_.angle_) { 0 }

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

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

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

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

void Banner_Gradient_Linear::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.banner.v1.Banner.Gradient.Linear)
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_mutable_points()->Clear();
  _impl_.angle_ = 0;
  _internal_metadata_.Clear<std::string>();
}

const char* Banner_Gradient_Linear::_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) {
      // float angle = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 13)) {
          _impl_.angle_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.Banner.Gradient.Linear.Point points = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_points(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(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* Banner_Gradient_Linear::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.Banner.Gradient.Linear)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // float angle = 1;
  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
  float tmp_angle = this->_internal_angle();
  ::uint32_t raw_angle;
  memcpy(&raw_angle, &tmp_angle, sizeof(tmp_angle));
  if (raw_angle != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this->_internal_angle(), target);
  }

  // repeated .keyapis.banner.v1.Banner.Gradient.Linear.Point points = 2 [(.google.api.field_behavior) = REQUIRED];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_points_size()); i < n; i++) {
    const auto& repfield = this->_internal_points(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, 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.banner.v1.Banner.Gradient.Linear)
  return target;
}

::size_t Banner_Gradient_Linear::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.Banner.Gradient.Linear)
  ::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.banner.v1.Banner.Gradient.Linear.Point points = 2 [(.google.api.field_behavior) = REQUIRED];
  total_size += 1UL * this->_internal_points_size();
  for (const auto& msg : this->_internal_points()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // float angle = 1;
  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
  float tmp_angle = this->_internal_angle();
  ::uint32_t raw_angle;
  memcpy(&raw_angle, &tmp_angle, sizeof(tmp_angle));
  if (raw_angle != 0) {
    total_size += 5;
  }

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

void Banner_Gradient_Linear::MergeFrom(const Banner_Gradient_Linear& from) {
  Banner_Gradient_Linear* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.banner.v1.Banner.Gradient.Linear)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_points()->MergeFrom(from._internal_points());
  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
  float tmp_angle = from._internal_angle();
  ::uint32_t raw_angle;
  memcpy(&raw_angle, &tmp_angle, sizeof(tmp_angle));
  if (raw_angle != 0) {
    _this->_internal_set_angle(from._internal_angle());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void Banner_Gradient_Linear::CopyFrom(const Banner_Gradient_Linear& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:keyapis.banner.v1.Banner.Gradient.Linear)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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

std::string Banner_Gradient_Linear::GetTypeName() const {
  return "keyapis.banner.v1.Banner.Gradient.Linear";
}

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

class Banner_Gradient::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::banner::v1::Banner_Gradient, _impl_._oneof_case_);
  static const ::keyapis::banner::v1::Banner_Gradient_Linear& linear(const Banner_Gradient* msg);
};

const ::keyapis::banner::v1::Banner_Gradient_Linear&
Banner_Gradient::_Internal::linear(const Banner_Gradient* msg) {
  return *msg->_impl_.type_.linear_;
}
void Banner_Gradient::set_allocated_linear(::keyapis::banner::v1::Banner_Gradient_Linear* linear) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_type();
  if (linear) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(linear);
    if (message_arena != submessage_arena) {
      linear = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, linear, submessage_arena);
    }
    set_has_linear();
    _impl_.type_.linear_ = linear;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.Banner.Gradient.linear)
}
Banner_Gradient::Banner_Gradient(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.Banner.Gradient)
}
Banner_Gradient::Banner_Gradient(const Banner_Gradient& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  Banner_Gradient* 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 kLinear: {
      _this->_internal_mutable_linear()->::keyapis::banner::v1::Banner_Gradient_Linear::MergeFrom(
          from._internal_linear());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.Banner.Gradient)
}

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

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

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

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

void Banner_Gradient::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:keyapis.banner.v1.Banner.Gradient)
  switch (type_case()) {
    case kLinear: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.type_.linear_;
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


void Banner_Gradient::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.banner.v1.Banner.Gradient)
  ::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* Banner_Gradient::_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.banner.v1.Banner.Gradient.Linear linear = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_linear(), 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* Banner_Gradient::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.Banner.Gradient)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .keyapis.banner.v1.Banner.Gradient.Linear linear = 1;
  if (type_case() == kLinear) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::linear(this),
        _Internal::linear(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.banner.v1.Banner.Gradient)
  return target;
}

::size_t Banner_Gradient::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.Banner.Gradient)
  ::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.banner.v1.Banner.Gradient.Linear linear = 1;
    case kLinear: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.type_.linear_);
      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 Banner_Gradient::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const Banner_Gradient*>(
      &from));
}

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

  switch (from.type_case()) {
    case kLinear: {
      _this->_internal_mutable_linear()->::keyapis::banner::v1::Banner_Gradient_Linear::MergeFrom(
          from._internal_linear());
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

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

class Banner_Image::_Internal {
 public:
};

Banner_Image::Banner_Image(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.Banner.Image)
}
Banner_Image::Banner_Image(const Banner_Image& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  Banner_Image* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.url_) {}

    , decltype(_impl_.type_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.url_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.url_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_url().empty()) {
    _this->_impl_.url_.Set(from._internal_url(), _this->GetArenaForAllocation());
  }
  _this->_impl_.type_ = from._impl_.type_;
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.Banner.Image)
}

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

    , decltype(_impl_.type_) { 0 }

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

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

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

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

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

  _impl_.url_.ClearToEmpty();
  _impl_.type_ = 0;
  _internal_metadata_.Clear<std::string>();
}

const char* Banner_Image::_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.banner.v1.Banner.Image.Type type = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::banner::v1::Banner_Image_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string url = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_url();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string Banner_Image::GetTypeName() const {
  return "keyapis.banner.v1.Banner.Image";
}

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

class Banner_Link::_Internal {
 public:
};

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

    , decltype(_impl_.platform_type_) {}

    , decltype(_impl_.type_) {}

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

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

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

    , decltype(_impl_.platform_type_) { 0 }

    , decltype(_impl_.type_) { 0 }

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

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

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

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

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

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

const char* Banner_Link::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.banner.v1.Banner.PlatformType platform_type = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_platform_type(static_cast<::keyapis::banner::v1::Banner_PlatformType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.Banner.Link.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::banner::v1::Banner_Link_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string url = 3 [(.google.api.field_behavior) = REQUIRED];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_url();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string packages = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_packages();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

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

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

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

::size_t Banner_Link::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.Banner.Link)
  ::size_t total_size = 0;

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

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

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

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

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

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

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

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

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

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

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

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

std::string Banner_Link::GetTypeName() const {
  return "keyapis.banner.v1.Banner.Link";
}

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

class Banner_SavingError_Conflict::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

::size_t Banner_SavingError_Conflict::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.Banner.SavingError.Conflict)
  ::size_t total_size = 0;

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

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

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

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

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

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

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

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

std::string Banner_SavingError_Conflict::GetTypeName() const {
  return "keyapis.banner.v1.Banner.SavingError.Conflict";
}

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

class Banner_SavingError::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::banner::v1::Banner_SavingError, _impl_._oneof_case_);
  static const ::keyapis::banner::v1::Banner_SavingError_Conflict& conflict(const Banner_SavingError* msg);
};

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  clear_has_reason();
  switch (from.reason_case()) {
    case kConflict: {
      _this->_internal_mutable_conflict()->::keyapis::banner::v1::Banner_SavingError_Conflict::MergeFrom(
          from._internal_conflict());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.Banner.SavingError)
}

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

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

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

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

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


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

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

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

  // .keyapis.banner.v1.Banner.SavingError.Conflict conflict = 1;
  if (reason_case() == kConflict) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::conflict(this),
        _Internal::conflict(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.banner.v1.Banner.SavingError)
  return target;
}

::size_t Banner_SavingError::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.Banner.SavingError)
  ::size_t total_size = 0;

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

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

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

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

  switch (from.reason_case()) {
    case kConflict: {
      _this->_internal_mutable_conflict()->::keyapis::banner::v1::Banner_SavingError_Conflict::MergeFrom(
          from._internal_conflict());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string Banner_SavingError::GetTypeName() const {
  return "keyapis.banner.v1.Banner.SavingError";
}

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

class Banner::_Internal {
 public:
  using HasBits = decltype(std::declval<Banner>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(Banner, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& header(const Banner* msg);
  static void set_has_header(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& header_color(const Banner* msg);
  static void set_has_header_color(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& subtitle(const Banner* msg);
  static void set_has_subtitle(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& subtitle_color(const Banner* msg);
  static void set_has_subtitle_color(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& background_color(const Banner* msg);
  static void set_has_background_color(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static const ::keyapis::banner::v1::Banner_Gradient& background_gradient(const Banner* msg);
  static void set_has_background_gradient(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& repeat_after_days(const Banner* msg);
  static void set_has_repeat_after_days(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& show_start_at(const Banner* msg);
  static void set_has_show_start_at(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& show_ended_at(const Banner* msg);
  static void set_has_show_ended_at(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& created_at(const Banner* msg);
  static void set_has_created_at(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& changed_at(const Banner* msg);
  static void set_has_changed_at(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::StringValue&
Banner::_Internal::header(const Banner* msg) {
  return *msg->_impl_.header_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
Banner::_Internal::header_color(const Banner* msg) {
  return *msg->_impl_.header_color_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
Banner::_Internal::subtitle(const Banner* msg) {
  return *msg->_impl_.subtitle_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
Banner::_Internal::subtitle_color(const Banner* msg) {
  return *msg->_impl_.subtitle_color_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
Banner::_Internal::background_color(const Banner* msg) {
  return *msg->_impl_.background_color_;
}
const ::keyapis::banner::v1::Banner_Gradient&
Banner::_Internal::background_gradient(const Banner* msg) {
  return *msg->_impl_.background_gradient_;
}
const ::PROTOBUF_NAMESPACE_ID::Int32Value&
Banner::_Internal::repeat_after_days(const Banner* msg) {
  return *msg->_impl_.repeat_after_days_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
Banner::_Internal::show_start_at(const Banner* msg) {
  return *msg->_impl_.show_start_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
Banner::_Internal::show_ended_at(const Banner* msg) {
  return *msg->_impl_.show_ended_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
Banner::_Internal::created_at(const Banner* msg) {
  return *msg->_impl_.created_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
Banner::_Internal::changed_at(const Banner* msg) {
  return *msg->_impl_.changed_at_;
}
void Banner::clear_header() {
  if (_impl_.header_ != nullptr) _impl_.header_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void Banner::clear_header_color() {
  if (_impl_.header_color_ != nullptr) _impl_.header_color_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
void Banner::clear_subtitle() {
  if (_impl_.subtitle_ != nullptr) _impl_.subtitle_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
void Banner::clear_subtitle_color() {
  if (_impl_.subtitle_color_ != nullptr) _impl_.subtitle_color_->Clear();
  _impl_._has_bits_[0] &= ~0x00000008u;
}
void Banner::clear_background_color() {
  if (_impl_.background_color_ != nullptr) _impl_.background_color_->Clear();
  _impl_._has_bits_[0] &= ~0x00000010u;
}
void Banner::clear_repeat_after_days() {
  if (_impl_.repeat_after_days_ != nullptr) _impl_.repeat_after_days_->Clear();
  _impl_._has_bits_[0] &= ~0x00000040u;
}
void Banner::clear_show_start_at() {
  if (_impl_.show_start_at_ != nullptr) _impl_.show_start_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000080u;
}
void Banner::clear_show_ended_at() {
  if (_impl_.show_ended_at_ != nullptr) _impl_.show_ended_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000100u;
}
void Banner::clear_created_at() {
  if (_impl_.created_at_ != nullptr) _impl_.created_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000200u;
}
void Banner::clear_changed_at() {
  if (_impl_.changed_at_ != nullptr) _impl_.changed_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000400u;
}
Banner::Banner(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.Banner)
}
Banner::Banner(const Banner& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  Banner* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.images_){from._impl_.images_}
    , decltype(_impl_.links_){from._impl_.links_}
    , decltype(_impl_.user_tags_){from._impl_.user_tags_}
    , decltype(_impl_.app_tags_){from._impl_.app_tags_}
    , decltype(_impl_.id_) {}

    , decltype(_impl_.title_) {}

    , decltype(_impl_.header_){nullptr}
    , decltype(_impl_.header_color_){nullptr}
    , decltype(_impl_.subtitle_){nullptr}
    , decltype(_impl_.subtitle_color_){nullptr}
    , decltype(_impl_.background_color_){nullptr}
    , decltype(_impl_.background_gradient_){nullptr}
    , decltype(_impl_.repeat_after_days_){nullptr}
    , decltype(_impl_.show_start_at_){nullptr}
    , decltype(_impl_.show_ended_at_){nullptr}
    , decltype(_impl_.created_at_){nullptr}
    , decltype(_impl_.changed_at_){nullptr}
    , decltype(_impl_.type_) {}

    , decltype(_impl_.priority_) {}

    , decltype(_impl_.priority_type_) {}

    , decltype(_impl_.status_type_) {}
  };

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_id().empty()) {
    _this->_impl_.id_.Set(from._internal_id(), _this->GetArenaForAllocation());
  }
  _impl_.title_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.title_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_title().empty()) {
    _this->_impl_.title_.Set(from._internal_title(), _this->GetArenaForAllocation());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.header_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.header_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000002u) != 0) {
    _this->_impl_.header_color_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.header_color_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000004u) != 0) {
    _this->_impl_.subtitle_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.subtitle_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000008u) != 0) {
    _this->_impl_.subtitle_color_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.subtitle_color_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000010u) != 0) {
    _this->_impl_.background_color_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.background_color_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000020u) != 0) {
    _this->_impl_.background_gradient_ = new ::keyapis::banner::v1::Banner_Gradient(*from._impl_.background_gradient_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000040u) != 0) {
    _this->_impl_.repeat_after_days_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.repeat_after_days_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000080u) != 0) {
    _this->_impl_.show_start_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.show_start_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000100u) != 0) {
    _this->_impl_.show_ended_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.show_ended_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000200u) != 0) {
    _this->_impl_.created_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.created_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000400u) != 0) {
    _this->_impl_.changed_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.changed_at_);
  }
  ::memcpy(&_impl_.type_, &from._impl_.type_,
    static_cast<::size_t>(reinterpret_cast<char*>(&_impl_.status_type_) -
    reinterpret_cast<char*>(&_impl_.type_)) + sizeof(_impl_.status_type_));
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.Banner)
}

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

    , decltype(_impl_.title_) {}

    , decltype(_impl_.header_){nullptr}
    , decltype(_impl_.header_color_){nullptr}
    , decltype(_impl_.subtitle_){nullptr}
    , decltype(_impl_.subtitle_color_){nullptr}
    , decltype(_impl_.background_color_){nullptr}
    , decltype(_impl_.background_gradient_){nullptr}
    , decltype(_impl_.repeat_after_days_){nullptr}
    , decltype(_impl_.show_start_at_){nullptr}
    , decltype(_impl_.show_ended_at_){nullptr}
    , decltype(_impl_.created_at_){nullptr}
    , decltype(_impl_.changed_at_){nullptr}
    , decltype(_impl_.type_) { 0 }

    , decltype(_impl_.priority_) { 0 }

    , decltype(_impl_.priority_type_) { 0 }

    , decltype(_impl_.status_type_) { 0 }

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

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

inline void Banner::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_images()->~RepeatedPtrField();
  _internal_mutable_links()->~RepeatedPtrField();
  _internal_mutable_user_tags()->~RepeatedPtrField();
  _internal_mutable_app_tags()->~RepeatedPtrField();
  _impl_.id_.Destroy();
  _impl_.title_.Destroy();
  if (this != internal_default_instance()) delete _impl_.header_;
  if (this != internal_default_instance()) delete _impl_.header_color_;
  if (this != internal_default_instance()) delete _impl_.subtitle_;
  if (this != internal_default_instance()) delete _impl_.subtitle_color_;
  if (this != internal_default_instance()) delete _impl_.background_color_;
  if (this != internal_default_instance()) delete _impl_.background_gradient_;
  if (this != internal_default_instance()) delete _impl_.repeat_after_days_;
  if (this != internal_default_instance()) delete _impl_.show_start_at_;
  if (this != internal_default_instance()) delete _impl_.show_ended_at_;
  if (this != internal_default_instance()) delete _impl_.created_at_;
  if (this != internal_default_instance()) delete _impl_.changed_at_;
}

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

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

  _internal_mutable_images()->Clear();
  _internal_mutable_links()->Clear();
  _internal_mutable_user_tags()->Clear();
  _internal_mutable_app_tags()->Clear();
  _impl_.id_.ClearToEmpty();
  _impl_.title_.ClearToEmpty();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.header_ != nullptr);
      _impl_.header_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.header_color_ != nullptr);
      _impl_.header_color_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      ABSL_DCHECK(_impl_.subtitle_ != nullptr);
      _impl_.subtitle_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      ABSL_DCHECK(_impl_.subtitle_color_ != nullptr);
      _impl_.subtitle_color_->Clear();
    }
    if (cached_has_bits & 0x00000010u) {
      ABSL_DCHECK(_impl_.background_color_ != nullptr);
      _impl_.background_color_->Clear();
    }
    if (cached_has_bits & 0x00000020u) {
      ABSL_DCHECK(_impl_.background_gradient_ != nullptr);
      _impl_.background_gradient_->Clear();
    }
    if (cached_has_bits & 0x00000040u) {
      ABSL_DCHECK(_impl_.repeat_after_days_ != nullptr);
      _impl_.repeat_after_days_->Clear();
    }
    if (cached_has_bits & 0x00000080u) {
      ABSL_DCHECK(_impl_.show_start_at_ != nullptr);
      _impl_.show_start_at_->Clear();
    }
  }
  if (cached_has_bits & 0x00000700u) {
    if (cached_has_bits & 0x00000100u) {
      ABSL_DCHECK(_impl_.show_ended_at_ != nullptr);
      _impl_.show_ended_at_->Clear();
    }
    if (cached_has_bits & 0x00000200u) {
      ABSL_DCHECK(_impl_.created_at_ != nullptr);
      _impl_.created_at_->Clear();
    }
    if (cached_has_bits & 0x00000400u) {
      ABSL_DCHECK(_impl_.changed_at_ != nullptr);
      _impl_.changed_at_->Clear();
    }
  }
  ::memset(&_impl_.type_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.status_type_) -
      reinterpret_cast<char*>(&_impl_.type_)) + sizeof(_impl_.status_type_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* Banner::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.Banner.Type type = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::banner::v1::Banner_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // int32 priority = 3 [(.google.api.field_behavior) = REQUIRED];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 24)) {
          _impl_.priority_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.Banner.PriorityType priority_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 32)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_priority_type(static_cast<::keyapis::banner::v1::Banner_PriorityType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string title = 5 [(.google.api.field_behavior) = REQUIRED];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_title();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue header = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_header(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue header_color = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_header_color(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue subtitle = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_subtitle(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue subtitle_color = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_subtitle_color(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue background_color = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_background_color(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.Banner.Gradient background_gradient = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_background_gradient(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value repeat_after_days = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_repeat_after_days(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp show_start_at = 13 [(.google.api.field_behavior) = REQUIRED];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_show_start_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp show_ended_at = 14 [(.google.api.field_behavior) = REQUIRED];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_show_ended_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.Banner.StatusType status_type = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 120)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_status_type(static_cast<::keyapis::banner::v1::Banner_StatusType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.Banner.Image images = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 130)) {
          ptr -= 2;
          do {
            ptr += 2;
            ptr = ctx->ParseMessage(_internal_add_images(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<130>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.Banner.Link links = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 138)) {
          ptr -= 2;
          do {
            ptr += 2;
            ptr = ctx->ParseMessage(_internal_add_links(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<138>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string user_tags = 18 [(.google.api.field_behavior) = REQUIRED];
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 146)) {
          ptr -= 2;
          do {
            ptr += 2;
            auto str = _internal_add_user_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<146>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string app_tags = 19 [(.google.api.field_behavior) = REQUIRED];
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 154)) {
          ptr -= 2;
          do {
            ptr += 2;
            auto str = _internal_add_app_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<154>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp created_at = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_created_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp changed_at = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_changed_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

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

  // .keyapis.banner.v1.Banner.PriorityType priority_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
  if (this->_internal_priority_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        4, this->_internal_priority_type(), target);
  }

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

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

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

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

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

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

  // .keyapis.banner.v1.Banner.Gradient background_gradient = 11;
  if (cached_has_bits & 0x00000020u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::background_gradient(this),
        _Internal::background_gradient(this).GetCachedSize(), target, stream);
  }

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

  // .google.protobuf.Timestamp show_start_at = 13 [(.google.api.field_behavior) = REQUIRED];
  if (cached_has_bits & 0x00000080u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(13, _Internal::show_start_at(this),
        _Internal::show_start_at(this).GetCachedSize(), target, stream);
  }

  // .google.protobuf.Timestamp show_ended_at = 14 [(.google.api.field_behavior) = REQUIRED];
  if (cached_has_bits & 0x00000100u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(14, _Internal::show_ended_at(this),
        _Internal::show_ended_at(this).GetCachedSize(), target, stream);
  }

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

  // repeated .keyapis.banner.v1.Banner.Image images = 16;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_images_size()); i < n; i++) {
    const auto& repfield = this->_internal_images(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(16, repfield, repfield.GetCachedSize(), target, stream);
  }

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

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

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

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

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

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

::size_t Banner::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.Banner)
  ::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.banner.v1.Banner.Image images = 16;
  total_size += 2UL * this->_internal_images_size();
  for (const auto& msg : this->_internal_images()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

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

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

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

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

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

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

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

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

    // .google.protobuf.StringValue subtitle_color = 9;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.subtitle_color_);
    }

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

    // .keyapis.banner.v1.Banner.Gradient background_gradient = 11;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.background_gradient_);
    }

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

    // .google.protobuf.Timestamp show_start_at = 13 [(.google.api.field_behavior) = REQUIRED];
    if (cached_has_bits & 0x00000080u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.show_start_at_);
    }

  }
  if (cached_has_bits & 0x00000700u) {
    // .google.protobuf.Timestamp show_ended_at = 14 [(.google.api.field_behavior) = REQUIRED];
    if (cached_has_bits & 0x00000100u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.show_ended_at_);
    }

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

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

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

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

  // .keyapis.banner.v1.Banner.PriorityType priority_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
  if (this->_internal_priority_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_priority_type());
  }

  // .keyapis.banner.v1.Banner.StatusType status_type = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
  if (this->_internal_status_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_status_type());
  }

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

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

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

  _this->_internal_mutable_images()->MergeFrom(from._internal_images());
  _this->_internal_mutable_links()->MergeFrom(from._internal_links());
  _this->_internal_mutable_user_tags()->MergeFrom(from._internal_user_tags());
  _this->_internal_mutable_app_tags()->MergeFrom(from._internal_app_tags());
  if (!from._internal_id().empty()) {
    _this->_internal_set_id(from._internal_id());
  }
  if (!from._internal_title().empty()) {
    _this->_internal_set_title(from._internal_title());
  }
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_header()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_header());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_header_color()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_header_color());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_subtitle()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_subtitle());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_internal_mutable_subtitle_color()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_subtitle_color());
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_internal_mutable_background_color()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_background_color());
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_internal_mutable_background_gradient()->::keyapis::banner::v1::Banner_Gradient::MergeFrom(
          from._internal_background_gradient());
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_internal_mutable_repeat_after_days()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_repeat_after_days());
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_internal_mutable_show_start_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_show_start_at());
    }
  }
  if (cached_has_bits & 0x00000700u) {
    if (cached_has_bits & 0x00000100u) {
      _this->_internal_mutable_show_ended_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_show_ended_at());
    }
    if (cached_has_bits & 0x00000200u) {
      _this->_internal_mutable_created_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_created_at());
    }
    if (cached_has_bits & 0x00000400u) {
      _this->_internal_mutable_changed_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_changed_at());
    }
  }
  if (from._internal_type() != 0) {
    _this->_internal_set_type(from._internal_type());
  }
  if (from._internal_priority() != 0) {
    _this->_internal_set_priority(from._internal_priority());
  }
  if (from._internal_priority_type() != 0) {
    _this->_internal_set_priority_type(from._internal_priority_type());
  }
  if (from._internal_status_type() != 0) {
    _this->_internal_set_status_type(from._internal_status_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string Banner::GetTypeName() const {
  return "keyapis.banner.v1.Banner";
}

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

class BannerLite_ImageLite::_Internal {
 public:
};

BannerLite_ImageLite::BannerLite_ImageLite(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.BannerLite.ImageLite)
}
BannerLite_ImageLite::BannerLite_ImageLite(const BannerLite_ImageLite& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  BannerLite_ImageLite* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.url_) {}

    , decltype(_impl_.type_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.url_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.url_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_url().empty()) {
    _this->_impl_.url_.Set(from._internal_url(), _this->GetArenaForAllocation());
  }
  _this->_impl_.type_ = from._impl_.type_;
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.BannerLite.ImageLite)
}

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

    , decltype(_impl_.type_) { 0 }

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

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

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

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

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

  _impl_.url_.ClearToEmpty();
  _impl_.type_ = 0;
  _internal_metadata_.Clear<std::string>();
}

const char* BannerLite_ImageLite::_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.banner.v1.Banner.Image.Type type = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::banner::v1::Banner_Image_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string url = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_url();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string BannerLite_ImageLite::GetTypeName() const {
  return "keyapis.banner.v1.BannerLite.ImageLite";
}

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

class BannerLite_LinkLite::_Internal {
 public:
};

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

    , decltype(_impl_.type_) {}

    , decltype(_impl_.platform_type_) {}

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

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

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

    , decltype(_impl_.type_) { 0 }

    , decltype(_impl_.platform_type_) { 0 }

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

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

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

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

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

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

const char* BannerLite_LinkLite::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .keyapis.banner.v1.Banner.Link.Type type = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::keyapis::banner::v1::Banner_Link_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // string url = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_url();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string packages = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_packages();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.Banner.PlatformType platform_type = 4 [(.google.api.field_behavior) = REQUIRED];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 32)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_platform_type(static_cast<::keyapis::banner::v1::Banner_PlatformType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

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

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

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

::size_t BannerLite_LinkLite::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.BannerLite.LinkLite)
  ::size_t total_size = 0;

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

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

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

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

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

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

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

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

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

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

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

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

std::string BannerLite_LinkLite::GetTypeName() const {
  return "keyapis.banner.v1.BannerLite.LinkLite";
}

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

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

const ::PROTOBUF_NAMESPACE_ID::Int32Value&
BannerLite::_Internal::repeat_after_days(const BannerLite* msg) {
  return *msg->_impl_.repeat_after_days_;
}
void BannerLite::clear_repeat_after_days() {
  if (_impl_.repeat_after_days_ != nullptr) _impl_.repeat_after_days_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
BannerLite::BannerLite(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.BannerLite)
}
BannerLite::BannerLite(const BannerLite& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  BannerLite* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.images_){from._impl_.images_}
    , decltype(_impl_.links_){from._impl_.links_}
    , decltype(_impl_.id_) {}

    , decltype(_impl_.repeat_after_days_){nullptr}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_id().empty()) {
    _this->_impl_.id_.Set(from._internal_id(), _this->GetArenaForAllocation());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.repeat_after_days_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.repeat_after_days_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.BannerLite)
}

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

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

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

inline void BannerLite::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_images()->~RepeatedPtrField();
  _internal_mutable_links()->~RepeatedPtrField();
  _impl_.id_.Destroy();
  if (this != internal_default_instance()) delete _impl_.repeat_after_days_;
}

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

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

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

const char* BannerLite::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value repeat_after_days = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_repeat_after_days(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.BannerLite.ImageLite images = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_images(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.BannerLite.LinkLite links = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_links(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

  // repeated .keyapis.banner.v1.BannerLite.ImageLite images = 3;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_images_size()); i < n; i++) {
    const auto& repfield = this->_internal_images(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

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

::size_t BannerLite::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.BannerLite)
  ::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.banner.v1.BannerLite.ImageLite images = 3;
  total_size += 1UL * this->_internal_images_size();
  for (const auto& msg : this->_internal_images()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

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

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

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

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

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

  _this->_internal_mutable_images()->MergeFrom(from._internal_images());
  _this->_internal_mutable_links()->MergeFrom(from._internal_links());
  if (!from._internal_id().empty()) {
    _this->_internal_set_id(from._internal_id());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_internal_mutable_repeat_after_days()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
        from._internal_repeat_after_days());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void BannerLite::InternalSwap(BannerLite* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _internal_mutable_images()->InternalSwap(other->_internal_mutable_images());
  _internal_mutable_links()->InternalSwap(other->_internal_mutable_links());
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, lhs_arena,
                                       &other->_impl_.id_, rhs_arena);
  swap(_impl_.repeat_after_days_, other->_impl_.repeat_after_days_);
}

std::string BannerLite::GetTypeName() const {
  return "keyapis.banner.v1.BannerLite";
}

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

class BannerFilter::_Internal {
 public:
  using HasBits = decltype(std::declval<BannerFilter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
    8 * PROTOBUF_FIELD_OFFSET(BannerFilter, _impl_._has_bits_);
  static const ::PROTOBUF_NAMESPACE_ID::StringValue& text(const BannerFilter* msg);
  static void set_has_text(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& begin_priority(const BannerFilter* msg);
  static void set_has_begin_priority(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Int32Value& end_priority(const BannerFilter* msg);
  static void set_has_end_priority(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& begin_show_start_at(const BannerFilter* msg);
  static void set_has_begin_show_start_at(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& end_show_start_at(const BannerFilter* msg);
  static void set_has_end_show_start_at(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& begin_show_ended_at(const BannerFilter* msg);
  static void set_has_begin_show_ended_at(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& end_show_ended_at(const BannerFilter* msg);
  static void set_has_end_show_ended_at(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
};

const ::PROTOBUF_NAMESPACE_ID::StringValue&
BannerFilter::_Internal::text(const BannerFilter* msg) {
  return *msg->_impl_.text_;
}
const ::PROTOBUF_NAMESPACE_ID::Int32Value&
BannerFilter::_Internal::begin_priority(const BannerFilter* msg) {
  return *msg->_impl_.begin_priority_;
}
const ::PROTOBUF_NAMESPACE_ID::Int32Value&
BannerFilter::_Internal::end_priority(const BannerFilter* msg) {
  return *msg->_impl_.end_priority_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
BannerFilter::_Internal::begin_show_start_at(const BannerFilter* msg) {
  return *msg->_impl_.begin_show_start_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
BannerFilter::_Internal::end_show_start_at(const BannerFilter* msg) {
  return *msg->_impl_.end_show_start_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
BannerFilter::_Internal::begin_show_ended_at(const BannerFilter* msg) {
  return *msg->_impl_.begin_show_ended_at_;
}
const ::PROTOBUF_NAMESPACE_ID::Timestamp&
BannerFilter::_Internal::end_show_ended_at(const BannerFilter* msg) {
  return *msg->_impl_.end_show_ended_at_;
}
void BannerFilter::clear_text() {
  if (_impl_.text_ != nullptr) _impl_.text_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void BannerFilter::clear_begin_priority() {
  if (_impl_.begin_priority_ != nullptr) _impl_.begin_priority_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
void BannerFilter::clear_end_priority() {
  if (_impl_.end_priority_ != nullptr) _impl_.end_priority_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
void BannerFilter::clear_begin_show_start_at() {
  if (_impl_.begin_show_start_at_ != nullptr) _impl_.begin_show_start_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000008u;
}
void BannerFilter::clear_end_show_start_at() {
  if (_impl_.end_show_start_at_ != nullptr) _impl_.end_show_start_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000010u;
}
void BannerFilter::clear_begin_show_ended_at() {
  if (_impl_.begin_show_ended_at_ != nullptr) _impl_.begin_show_ended_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000020u;
}
void BannerFilter::clear_end_show_ended_at() {
  if (_impl_.end_show_ended_at_ != nullptr) _impl_.end_show_ended_at_->Clear();
  _impl_._has_bits_[0] &= ~0x00000040u;
}
BannerFilter::BannerFilter(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.BannerFilter)
}
BannerFilter::BannerFilter(const BannerFilter& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  BannerFilter* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.types_) { from._internal_types() }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.priority_types_) { from._internal_priority_types() }
    , /*decltype(_impl_._priority_types_cached_byte_size_)*/ { 0 }

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

    , decltype(_impl_.user_tags_){from._impl_.user_tags_}
    , decltype(_impl_.app_tags_){from._impl_.app_tags_}
    , decltype(_impl_.text_){nullptr}
    , decltype(_impl_.begin_priority_){nullptr}
    , decltype(_impl_.end_priority_){nullptr}
    , decltype(_impl_.begin_show_start_at_){nullptr}
    , decltype(_impl_.end_show_start_at_){nullptr}
    , decltype(_impl_.begin_show_ended_at_){nullptr}
    , decltype(_impl_.end_show_ended_at_){nullptr}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.text_ = new ::PROTOBUF_NAMESPACE_ID::StringValue(*from._impl_.text_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000002u) != 0) {
    _this->_impl_.begin_priority_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.begin_priority_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000004u) != 0) {
    _this->_impl_.end_priority_ = new ::PROTOBUF_NAMESPACE_ID::Int32Value(*from._impl_.end_priority_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000008u) != 0) {
    _this->_impl_.begin_show_start_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.begin_show_start_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000010u) != 0) {
    _this->_impl_.end_show_start_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.end_show_start_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000020u) != 0) {
    _this->_impl_.begin_show_ended_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.begin_show_ended_at_);
  }
  if ((from._impl_._has_bits_[0] & 0x00000040u) != 0) {
    _this->_impl_.end_show_ended_at_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from._impl_.end_show_ended_at_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.BannerFilter)
}

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

    , decltype(_impl_.priority_types_) { arena }
    , /*decltype(_impl_._priority_types_cached_byte_size_)*/ { 0 }

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

    , decltype(_impl_.user_tags_){arena}
    , decltype(_impl_.app_tags_){arena}
    , decltype(_impl_.text_){nullptr}
    , decltype(_impl_.begin_priority_){nullptr}
    , decltype(_impl_.end_priority_){nullptr}
    , decltype(_impl_.begin_show_start_at_){nullptr}
    , decltype(_impl_.end_show_start_at_){nullptr}
    , decltype(_impl_.begin_show_ended_at_){nullptr}
    , decltype(_impl_.end_show_ended_at_){nullptr}
  };
}

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

inline void BannerFilter::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _internal_mutable_types()->~RepeatedField();
  _internal_mutable_priority_types()->~RepeatedField();
  _internal_mutable_status_types()->~RepeatedField();
  _internal_mutable_user_tags()->~RepeatedPtrField();
  _internal_mutable_app_tags()->~RepeatedPtrField();
  if (this != internal_default_instance()) delete _impl_.text_;
  if (this != internal_default_instance()) delete _impl_.begin_priority_;
  if (this != internal_default_instance()) delete _impl_.end_priority_;
  if (this != internal_default_instance()) delete _impl_.begin_show_start_at_;
  if (this != internal_default_instance()) delete _impl_.end_show_start_at_;
  if (this != internal_default_instance()) delete _impl_.begin_show_ended_at_;
  if (this != internal_default_instance()) delete _impl_.end_show_ended_at_;
}

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

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

  _internal_mutable_types()->Clear();
  _internal_mutable_priority_types()->Clear();
  _internal_mutable_status_types()->Clear();
  _internal_mutable_user_tags()->Clear();
  _internal_mutable_app_tags()->Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000007fu) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.text_ != nullptr);
      _impl_.text_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.begin_priority_ != nullptr);
      _impl_.begin_priority_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      ABSL_DCHECK(_impl_.end_priority_ != nullptr);
      _impl_.end_priority_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      ABSL_DCHECK(_impl_.begin_show_start_at_ != nullptr);
      _impl_.begin_show_start_at_->Clear();
    }
    if (cached_has_bits & 0x00000010u) {
      ABSL_DCHECK(_impl_.end_show_start_at_ != nullptr);
      _impl_.end_show_start_at_->Clear();
    }
    if (cached_has_bits & 0x00000020u) {
      ABSL_DCHECK(_impl_.begin_show_ended_at_ != nullptr);
      _impl_.begin_show_ended_at_->Clear();
    }
    if (cached_has_bits & 0x00000040u) {
      ABSL_DCHECK(_impl_.end_show_ended_at_ != nullptr);
      _impl_.end_show_ended_at_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

const char* BannerFilter::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .google.protobuf.StringValue text = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_text(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.Banner.Type types = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 16) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_types(static_cast<::keyapis::banner::v1::Banner_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value begin_priority = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_begin_priority(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Int32Value end_priority = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_end_priority(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.Banner.PriorityType priority_types = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_priority_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 40) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_priority_types(static_cast<::keyapis::banner::v1::Banner_PriorityType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp begin_show_start_at = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_begin_show_start_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp end_show_start_at = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_end_show_start_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp begin_show_ended_at = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_begin_show_ended_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.Timestamp end_show_ended_at = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_end_show_ended_at(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated .keyapis.banner.v1.Banner.StatusType status_types = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 82)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_status_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 80) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_status_types(static_cast<::keyapis::banner::v1::Banner_StatusType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string user_tags = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 90)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_user_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string app_tags = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 98)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_app_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<98>(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* BannerFilter::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.BannerFilter)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

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

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

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

  // repeated .keyapis.banner.v1.Banner.PriorityType priority_types = 5;
  {
    int byte_size = _impl_._priority_types_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(5, _internal_priority_types(),
                                       byte_size, target);
    }
  }

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

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

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

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

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

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

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

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

::size_t BannerFilter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.BannerFilter)
  ::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.banner.v1.Banner.Type types = 2;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_types_size());

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

  // repeated .keyapis.banner.v1.Banner.PriorityType priority_types = 5;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_priority_types_size());

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

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

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

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

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

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

    // .google.protobuf.Int32Value begin_priority = 3;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.begin_priority_);
    }

    // .google.protobuf.Int32Value end_priority = 4;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.end_priority_);
    }

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

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

    // .google.protobuf.Timestamp begin_show_ended_at = 8;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.begin_show_ended_at_);
    }

    // .google.protobuf.Timestamp end_show_ended_at = 9;
    if (cached_has_bits & 0x00000040u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.end_show_ended_at_);
    }

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

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

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

  _this->_internal_mutable_types()->MergeFrom(from._internal_types());
  _this->_internal_mutable_priority_types()->MergeFrom(from._internal_priority_types());
  _this->_internal_mutable_status_types()->MergeFrom(from._internal_status_types());
  _this->_internal_mutable_user_tags()->MergeFrom(from._internal_user_tags());
  _this->_internal_mutable_app_tags()->MergeFrom(from._internal_app_tags());
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000007fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_text()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_text());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_begin_priority()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_begin_priority());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_end_priority()->::PROTOBUF_NAMESPACE_ID::Int32Value::MergeFrom(
          from._internal_end_priority());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_internal_mutable_begin_show_start_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_begin_show_start_at());
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_internal_mutable_end_show_start_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_end_show_start_at());
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_internal_mutable_begin_show_ended_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_begin_show_ended_at());
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_internal_mutable_end_show_ended_at()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(
          from._internal_end_show_ended_at());
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void BannerFilter::InternalSwap(BannerFilter* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _internal_mutable_types()->InternalSwap(
      other->_internal_mutable_types());
  _internal_mutable_priority_types()->InternalSwap(
      other->_internal_mutable_priority_types());
  _internal_mutable_status_types()->InternalSwap(
      other->_internal_mutable_status_types());
  _internal_mutable_user_tags()->InternalSwap(
      other->_internal_mutable_user_tags());
  _internal_mutable_app_tags()->InternalSwap(
      other->_internal_mutable_app_tags());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(BannerFilter, _impl_.end_show_ended_at_)
      + sizeof(BannerFilter::_impl_.end_show_ended_at_)
      - PROTOBUF_FIELD_OFFSET(BannerFilter, _impl_.text_)>(
          reinterpret_cast<char*>(&_impl_.text_),
          reinterpret_cast<char*>(&other->_impl_.text_));
}

std::string BannerFilter::GetTypeName() const {
  return "keyapis.banner.v1.BannerFilter";
}

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

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

const ::PROTOBUF_NAMESPACE_ID::StringValue&
BannerLiteFilter::_Internal::app_name(const BannerLiteFilter* msg) {
  return *msg->_impl_.app_name_;
}
const ::PROTOBUF_NAMESPACE_ID::StringValue&
BannerLiteFilter::_Internal::version(const BannerLiteFilter* msg) {
  return *msg->_impl_.version_;
}
void BannerLiteFilter::clear_app_name() {
  if (_impl_.app_name_ != nullptr) _impl_.app_name_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
void BannerLiteFilter::clear_version() {
  if (_impl_.version_ != nullptr) _impl_.version_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
BannerLiteFilter::BannerLiteFilter(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.BannerLiteFilter)
}
BannerLiteFilter::BannerLiteFilter(const BannerLiteFilter& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  BannerLiteFilter* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.types_) { from._internal_types() }
    , /*decltype(_impl_._types_cached_byte_size_)*/ { 0 }

    , decltype(_impl_.user_tags_){from._impl_.user_tags_}
    , decltype(_impl_.app_name_){nullptr}
    , decltype(_impl_.version_){nullptr}
    , decltype(_impl_.platform_type_) {}
  };

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

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

    , decltype(_impl_.user_tags_){arena}
    , decltype(_impl_.app_name_){nullptr}
    , decltype(_impl_.version_){nullptr}
    , decltype(_impl_.platform_type_) { 0 }

  };
}

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

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

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

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

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

const char* BannerLiteFilter::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .keyapis.banner.v1.Banner.Type types = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_types(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::uint8_t>(tag) == 8) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_add_types(static_cast<::keyapis::banner::v1::Banner_Type>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue app_name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_app_name(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.Banner.PlatformType platform_type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 24)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_platform_type(static_cast<::keyapis::banner::v1::Banner_PlatformType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .google.protobuf.StringValue version = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_version(), ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // repeated string user_tags = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_user_tags();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, nullptr));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else {
          goto handle_unusual;
        }
        continue;
      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* BannerLiteFilter::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.BannerLiteFilter)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

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

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

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

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

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

::size_t BannerLiteFilter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:keyapis.banner.v1.BannerLiteFilter)
  ::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.banner.v1.Banner.Type types = 1;
  {
    std::size_t data_size = 0;
    auto count = static_cast<std::size_t>(this->_internal_types_size());

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

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

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

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

  }
  // .keyapis.banner.v1.Banner.PlatformType platform_type = 3;
  if (this->_internal_platform_type() != 0) {
    total_size += 1 +
                  ::_pbi::WireFormatLite::EnumSize(this->_internal_platform_type());
  }

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

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

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

  _this->_internal_mutable_types()->MergeFrom(from._internal_types());
  _this->_internal_mutable_user_tags()->MergeFrom(from._internal_user_tags());
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_app_name()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_app_name());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_version()->::PROTOBUF_NAMESPACE_ID::StringValue::MergeFrom(
          from._internal_version());
    }
  }
  if (from._internal_platform_type() != 0) {
    _this->_internal_set_platform_type(from._internal_platform_type());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

std::string BannerLiteFilter::GetTypeName() const {
  return "keyapis.banner.v1.BannerLiteFilter";
}

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

class BannerPaging::_Internal {
 public:
};

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

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

    , decltype(_impl_.direction_type_) { 0 }

    , decltype(_impl_.limit_) { 0 }

    , decltype(_impl_.offset_) { 0 }

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

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

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

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

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

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

const char* BannerPaging::_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.banner.v1.BannerPaging.OrderByType order_by_type = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_order_by_type(static_cast<::keyapis::banner::v1::BannerPaging_OrderByType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.BannerPaging.DirectionType direction_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
          ::int32_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
          _internal_set_direction_type(static_cast<::keyapis::banner::v1::BannerPaging_DirectionType>(val));
        } else {
          goto handle_unusual;
        }
        continue;
      // int32 limit = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 24)) {
          _impl_.limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // int32 offset = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 32)) {
          _impl_.offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<std::string>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string BannerPaging::GetTypeName() const {
  return "keyapis.banner.v1.BannerPaging";
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string PostBannerRequest::GetTypeName() const {
  return "keyapis.banner.v1.PostBannerRequest";
}

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

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

const ::keyapis::banner::v1::ValidationError&
PostBannerResponse_Error::_Internal::validation(const PostBannerResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
const ::keyapis::banner::v1::Banner_SavingError&
PostBannerResponse_Error::_Internal::saving(const PostBannerResponse_Error* msg) {
  return *msg->_impl_.reason_.saving_;
}
void PostBannerResponse_Error::set_allocated_validation(::keyapis::banner::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.PostBannerResponse.Error.validation)
}
void PostBannerResponse_Error::set_allocated_saving(::keyapis::banner::v1::Banner_SavingError* saving) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (saving) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(saving);
    if (message_arena != submessage_arena) {
      saving = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, saving, submessage_arena);
    }
    set_has_saving();
    _impl_.reason_.saving_ = saving;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.PostBannerResponse.Error.saving)
}
PostBannerResponse_Error::PostBannerResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.PostBannerResponse.Error)
}
PostBannerResponse_Error::PostBannerResponse_Error(const PostBannerResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostBannerResponse_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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case kSaving: {
      _this->_internal_mutable_saving()->::keyapis::banner::v1::Banner_SavingError::MergeFrom(
          from._internal_saving());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.PostBannerResponse.Error)
}

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

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

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

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

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


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

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

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

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

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

void PostBannerResponse_Error::MergeFrom(const PostBannerResponse_Error& from) {
  PostBannerResponse_Error* const _this = this;
  // @@protoc_insertion_point(class_specific_merge_from_start:keyapis.banner.v1.PostBannerResponse.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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case kSaving: {
      _this->_internal_mutable_saving()->::keyapis::banner::v1::Banner_SavingError::MergeFrom(
          from._internal_saving());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void PostBannerResponse_Error::InternalSwap(PostBannerResponse_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 PostBannerResponse_Error::GetTypeName() const {
  return "keyapis.banner.v1.PostBannerResponse.Error";
}

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

class PostBannerResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::banner::v1::PostBannerResponse, _impl_._oneof_case_);
  static const ::keyapis::banner::v1::Banner& data(const PostBannerResponse* msg);
  static const ::keyapis::banner::v1::PostBannerResponse_Error& error(const PostBannerResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

class GetBannerRequest::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string GetBannerRequest::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerRequest";
}

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

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

const ::keyapis::banner::v1::ValidationError&
GetBannerResponse_Error::_Internal::validation(const GetBannerResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetBannerResponse_Error::set_allocated_validation(::keyapis::banner::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.GetBannerResponse.Error.validation)
}
GetBannerResponse_Error::GetBannerResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.GetBannerResponse.Error)
}
GetBannerResponse_Error::GetBannerResponse_Error(const GetBannerResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetBannerResponse_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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.GetBannerResponse.Error)
}

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

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

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

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

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

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

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

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

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

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

void GetBannerResponse_Error::InternalSwap(GetBannerResponse_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 GetBannerResponse_Error::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerResponse.Error";
}

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

class GetBannerResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::banner::v1::GetBannerResponse, _impl_._oneof_case_);
  static const ::keyapis::banner::v1::Banner& data(const GetBannerResponse* msg);
  static const ::keyapis::banner::v1::GetBannerResponse_Error& error(const GetBannerResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

class GetBannerLiteRequest::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string GetBannerLiteRequest::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerLiteRequest";
}

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

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

const ::keyapis::banner::v1::ValidationError&
GetBannerLiteResponse_Error::_Internal::validation(const GetBannerLiteResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetBannerLiteResponse_Error::set_allocated_validation(::keyapis::banner::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.GetBannerLiteResponse.Error.validation)
}
GetBannerLiteResponse_Error::GetBannerLiteResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.GetBannerLiteResponse.Error)
}
GetBannerLiteResponse_Error::GetBannerLiteResponse_Error(const GetBannerLiteResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetBannerLiteResponse_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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.GetBannerLiteResponse.Error)
}

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

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

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

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

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

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

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

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

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

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

void GetBannerLiteResponse_Error::InternalSwap(GetBannerLiteResponse_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 GetBannerLiteResponse_Error::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerLiteResponse.Error";
}

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

class GetBannerLiteResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::banner::v1::GetBannerLiteResponse, _impl_._oneof_case_);
  static const ::keyapis::banner::v1::BannerLite& data(const GetBannerLiteResponse* msg);
  static const ::keyapis::banner::v1::GetBannerLiteResponse_Error& error(const GetBannerLiteResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string GetBannerListRequest::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerListRequest";
}

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

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

const ::keyapis::banner::v1::ValidationError&
GetBannerListResponse_Error::_Internal::validation(const GetBannerListResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetBannerListResponse_Error::set_allocated_validation(::keyapis::banner::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.GetBannerListResponse.Error.validation)
}
GetBannerListResponse_Error::GetBannerListResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.GetBannerListResponse.Error)
}
GetBannerListResponse_Error::GetBannerListResponse_Error(const GetBannerListResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetBannerListResponse_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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.GetBannerListResponse.Error)
}

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

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

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

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

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

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

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

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

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

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

void GetBannerListResponse_Error::InternalSwap(GetBannerListResponse_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 GetBannerListResponse_Error::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerListResponse.Error";
}

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

class GetBannerListResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::banner::v1::GetBannerListResponse, _impl_._oneof_case_);
  static const ::keyapis::banner::v1::Banner& data(const GetBannerListResponse* msg);
  static const ::keyapis::banner::v1::GetBannerListResponse_Error& error(const GetBannerListResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  };
}

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

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

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

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

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

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

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

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

  // bool is_link_filter_disabled = 2;
  if (this->_internal_is_link_filter_disabled() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this->_internal_is_link_filter_disabled(), target);
  }

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

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

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

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

  // bool is_link_filter_disabled = 2;
  if (this->_internal_is_link_filter_disabled() != 0) {
    total_size += 2;
  }

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

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

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

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

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

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

std::string GetBannerLiteListRequest::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerLiteListRequest";
}

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

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

const ::keyapis::banner::v1::ValidationError&
GetBannerLiteListResponse_Error::_Internal::validation(const GetBannerLiteListResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetBannerLiteListResponse_Error::set_allocated_validation(::keyapis::banner::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.GetBannerLiteListResponse.Error.validation)
}
GetBannerLiteListResponse_Error::GetBannerLiteListResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.GetBannerLiteListResponse.Error)
}
GetBannerLiteListResponse_Error::GetBannerLiteListResponse_Error(const GetBannerLiteListResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetBannerLiteListResponse_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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.GetBannerLiteListResponse.Error)
}

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

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

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

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

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

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

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

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

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

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

void GetBannerLiteListResponse_Error::InternalSwap(GetBannerLiteListResponse_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 GetBannerLiteListResponse_Error::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerLiteListResponse.Error";
}

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

class GetBannerLiteListResponse::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
    PROTOBUF_FIELD_OFFSET(::keyapis::banner::v1::GetBannerLiteListResponse, _impl_._oneof_case_);
  static const ::keyapis::banner::v1::BannerLite& data(const GetBannerLiteListResponse* msg);
  static const ::keyapis::banner::v1::GetBannerLiteListResponse_Error& error(const GetBannerLiteListResponse* msg);
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string GetBannerCountRequest::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerCountRequest";
}

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

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

const ::keyapis::banner::v1::ValidationError&
GetBannerCountResponse_Error::_Internal::validation(const GetBannerCountResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void GetBannerCountResponse_Error::set_allocated_validation(::keyapis::banner::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.GetBannerCountResponse.Error.validation)
}
GetBannerCountResponse_Error::GetBannerCountResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.GetBannerCountResponse.Error)
}
GetBannerCountResponse_Error::GetBannerCountResponse_Error(const GetBannerCountResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetBannerCountResponse_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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.GetBannerCountResponse.Error)
}

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

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

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

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

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

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

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

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

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

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

void GetBannerCountResponse_Error::InternalSwap(GetBannerCountResponse_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 GetBannerCountResponse_Error::GetTypeName() const {
  return "keyapis.banner.v1.GetBannerCountResponse.Error";
}

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

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

const ::keyapis::banner::v1::GetBannerCountResponse_Error&
GetBannerCountResponse::_Internal::error(const GetBannerCountResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void GetBannerCountResponse::set_allocated_error(::keyapis::banner::v1::GetBannerCountResponse_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.banner.v1.GetBannerCountResponse.error)
}
GetBannerCountResponse::GetBannerCountResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.GetBannerCountResponse)
}
GetBannerCountResponse::GetBannerCountResponse(const GetBannerCountResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  GetBannerCountResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

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

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

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

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

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

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


void GetBannerCountResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.banner.v1.GetBannerCountResponse)
  ::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* GetBannerCountResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 8)) {
          _internal_set_data(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.GetBannerCountResponse.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* GetBannerCountResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.GetBannerCountResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

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

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

  switch (type_case()) {
    // int32 data = 1;
    case kData: {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this->_internal_data());
      break;
    }
    // .keyapis.banner.v1.GetBannerCountResponse.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 GetBannerCountResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const GetBannerCountResponse*>(
      &from));
}

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

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

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

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

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

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

class UploadImage::_Internal {
 public:
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

std::string UploadImage::GetTypeName() const {
  return "keyapis.banner.v1.UploadImage";
}

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

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

const ::keyapis::banner::v1::UploadImage&
PostBannerUploadImageRequest::_Internal::upload_image(const PostBannerUploadImageRequest* msg) {
  return *msg->_impl_.upload_image_;
}
PostBannerUploadImageRequest::PostBannerUploadImageRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.PostBannerUploadImageRequest)
}
PostBannerUploadImageRequest::PostBannerUploadImageRequest(const PostBannerUploadImageRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostBannerUploadImageRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.banner_id_) {}

    , decltype(_impl_.upload_image_){nullptr}};

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.banner_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.banner_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_banner_id().empty()) {
    _this->_impl_.banner_id_.Set(from._internal_banner_id(), _this->GetArenaForAllocation());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_impl_.upload_image_ = new ::keyapis::banner::v1::UploadImage(*from._impl_.upload_image_);
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.PostBannerUploadImageRequest)
}

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

    , decltype(_impl_.upload_image_){nullptr}
  };
  _impl_.banner_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.banner_id_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

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

inline void PostBannerUploadImageRequest::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.banner_id_.Destroy();
  if (this != internal_default_instance()) delete _impl_.upload_image_;
}

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

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

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

const char* PostBannerUploadImageRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string banner_id = 1 [(.google.api.field_behavior) = REQUIRED];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_banner_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.UploadImage upload_image = 2 [(.google.api.field_behavior) = REQUIRED];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_upload_image(), 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* PostBannerUploadImageRequest::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.PostBannerUploadImageRequest)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

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

  cached_has_bits = _impl_._has_bits_[0];
  // .keyapis.banner.v1.UploadImage upload_image = 2 [(.google.api.field_behavior) = REQUIRED];
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::upload_image(this),
        _Internal::upload_image(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.banner.v1.PostBannerUploadImageRequest)
  return target;
}

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

  // .keyapis.banner.v1.UploadImage upload_image = 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_.upload_image_);
  }

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

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

  if (!from._internal_banner_id().empty()) {
    _this->_internal_set_banner_id(from._internal_banner_id());
  }
  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
    _this->_internal_mutable_upload_image()->::keyapis::banner::v1::UploadImage::MergeFrom(
        from._internal_upload_image());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

void PostBannerUploadImageRequest::InternalSwap(PostBannerUploadImageRequest* 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_.banner_id_, lhs_arena,
                                       &other->_impl_.banner_id_, rhs_arena);
  swap(_impl_.upload_image_, other->_impl_.upload_image_);
}

std::string PostBannerUploadImageRequest::GetTypeName() const {
  return "keyapis.banner.v1.PostBannerUploadImageRequest";
}

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

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

const ::keyapis::banner::v1::ValidationError&
PostBannerUploadImageResponse_Error::_Internal::validation(const PostBannerUploadImageResponse_Error* msg) {
  return *msg->_impl_.reason_.validation_;
}
void PostBannerUploadImageResponse_Error::set_allocated_validation(::keyapis::banner::v1::ValidationError* validation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_reason();
  if (validation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(validation);
    if (message_arena != submessage_arena) {
      validation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, validation, submessage_arena);
    }
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.banner.v1.PostBannerUploadImageResponse.Error.validation)
}
PostBannerUploadImageResponse_Error::PostBannerUploadImageResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.PostBannerUploadImageResponse.Error)
}
PostBannerUploadImageResponse_Error::PostBannerUploadImageResponse_Error(const PostBannerUploadImageResponse_Error& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostBannerUploadImageResponse_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::banner::v1::ValidationError::MergeFrom(
          from._internal_validation());
      break;
    }
    case REASON_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.PostBannerUploadImageResponse.Error)
}

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

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

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

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

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

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

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

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

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

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

void PostBannerUploadImageResponse_Error::InternalSwap(PostBannerUploadImageResponse_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 PostBannerUploadImageResponse_Error::GetTypeName() const {
  return "keyapis.banner.v1.PostBannerUploadImageResponse.Error";
}

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

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

const ::keyapis::banner::v1::PostBannerUploadImageResponse_Error&
PostBannerUploadImageResponse::_Internal::error(const PostBannerUploadImageResponse* msg) {
  return *msg->_impl_.type_.error_;
}
void PostBannerUploadImageResponse::set_allocated_error(::keyapis::banner::v1::PostBannerUploadImageResponse_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.banner.v1.PostBannerUploadImageResponse.error)
}
PostBannerUploadImageResponse::PostBannerUploadImageResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena) {
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:keyapis.banner.v1.PostBannerUploadImageResponse)
}
PostBannerUploadImageResponse::PostBannerUploadImageResponse(const PostBannerUploadImageResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::MessageLite() {
  PostBannerUploadImageResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

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

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

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

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

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

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


void PostBannerUploadImageResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:keyapis.banner.v1.PostBannerUploadImageResponse)
  ::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* PostBannerUploadImageResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_data();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, nullptr));
        } else {
          goto handle_unusual;
        }
        continue;
      // .keyapis.banner.v1.PostBannerUploadImageResponse.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* PostBannerUploadImageResponse::_InternalSerialize(
    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:keyapis.banner.v1.PostBannerUploadImageResponse)
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (type_case()) {
    case kData: {
      const std::string& _s = this->_internal_data();
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "keyapis.banner.v1.PostBannerUploadImageResponse.data");
      target = stream->WriteStringMaybeAliased(1, _s, target);
      break;
    }
    case kError: {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, _Internal::error(this),
          _Internal::error(this).GetCachedSize(), target, stream);
      break;
    }
    default: ;
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(),
        static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:keyapis.banner.v1.PostBannerUploadImageResponse)
  return target;
}

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

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

  switch (type_case()) {
    // string data = 1;
    case kData: {
      total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
                                      this->_internal_data());
      break;
    }
    // .keyapis.banner.v1.PostBannerUploadImageResponse.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 PostBannerUploadImageResponse::CheckTypeAndMergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
  MergeFrom(*::_pbi::DownCast<const PostBannerUploadImageResponse*>(
      &from));
}

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

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

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

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

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

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

class ValidationError::_Internal {
 public:
};

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

    , decltype(_impl_.message_) {}

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

  _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
  _impl_.path_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.path_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_path().empty()) {
    _this->_impl_.path_.Set(from._internal_path(), _this->GetArenaForAllocation());
  }
  _impl_.message_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        _impl_.message_.Set("", GetArenaForAllocation());
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_message().empty()) {
    _this->_impl_.message_.Set(from._internal_message(), _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:keyapis.banner.v1.ValidationError)
}

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

    , decltype(_impl_.message_) {}

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

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

inline void ValidationError::SharedDtor() {
  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.path_.Destroy();
  _impl_.message_.Destroy();
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  if (!from._internal_path().empty()) {
    _this->_internal_set_path(from._internal_path());
  }
  if (!from._internal_message().empty()) {
    _this->_internal_set_message(from._internal_message());
  }
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

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

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

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

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace banner
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner_Gradient_Linear_Point*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner_Gradient_Linear_Point >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner_Gradient_Linear_Point >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner_Gradient_Linear*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner_Gradient_Linear >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner_Gradient_Linear >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner_Gradient*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner_Gradient >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner_Gradient >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner_Image*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner_Image >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner_Image >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner_Link*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner_Link >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner_Link >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner_SavingError_Conflict*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner_SavingError_Conflict >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner_SavingError_Conflict >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner_SavingError*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner_SavingError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner_SavingError >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::Banner*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::Banner >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::Banner >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::BannerLite_ImageLite*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::BannerLite_ImageLite >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::BannerLite_ImageLite >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::BannerLite_LinkLite*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::BannerLite_LinkLite >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::BannerLite_LinkLite >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::BannerLite*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::BannerLite >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::BannerLite >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::BannerFilter*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::BannerFilter >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::BannerFilter >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::BannerLiteFilter*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::BannerLiteFilter >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::BannerLiteFilter >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::BannerPaging*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::BannerPaging >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::BannerPaging >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::PostBannerRequest*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::PostBannerRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::PostBannerRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::PostBannerResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::PostBannerResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::PostBannerResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::PostBannerResponse*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::PostBannerResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::PostBannerResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerRequest*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerResponse*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerLiteRequest*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerLiteRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerLiteRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerLiteResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerLiteResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerLiteResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerLiteResponse*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerLiteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerLiteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerListRequest*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerListResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerListResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerListResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerListResponse*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerLiteListRequest*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerLiteListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerLiteListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerLiteListResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerLiteListResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerLiteListResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerLiteListResponse*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerLiteListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerLiteListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerCountRequest*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerCountRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerCountRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerCountResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerCountResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerCountResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::GetBannerCountResponse*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::GetBannerCountResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::GetBannerCountResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::UploadImage*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::UploadImage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::UploadImage >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::PostBannerUploadImageRequest*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::PostBannerUploadImageRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::PostBannerUploadImageRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::PostBannerUploadImageResponse_Error*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::PostBannerUploadImageResponse_Error >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::PostBannerUploadImageResponse_Error >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::PostBannerUploadImageResponse*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::PostBannerUploadImageResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::PostBannerUploadImageResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::keyapis::banner::v1::ValidationError*
Arena::CreateMaybeMessage< ::keyapis::banner::v1::ValidationError >(Arena* arena) {
  return Arena::CreateMessageInternal< ::keyapis::banner::v1::ValidationError >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
